As the years went by, web pages became more and more extensive and complex. To load a modern web in the browser, it has to request many megabytes of data and send up to a hundred HTTP requests. HTTP / 1.1 is designed to process requests one after another in the same connection, so the more complex a web page is, the longer it will take to load and display.
For this reason, Google developed a new and experimental protocol, SPDY or Speedy, which aroused great interest among developers and allowed the HTTP / 2 version of the protocol to be published in 2015. This standard includes, among others, the following improvements, which aim to speed up the loading of web pages:
- Binary data . The protocol works with binary data instead of text files.
- Multiplex . The client and the server can send and process multiple HTTP requests simultaneously.
- Compression . The headers are compressed, since they are identical in many HTTP requests and thus, redundancies are avoided.
- Server Push . When the server anticipates what data the client will ask for, it sends it directly to the client's cache, without waiting for the corresponding HTTP request.
The HTTP / 2 version spread quickly, and high-traffic web pages were among the first to adopt it. Currently (as of January 2020), according to W3Techs, 42% of web pages use the HTTP / 2 version.