8.1.1 HTTP/2 protocol and its support

HTTP/2

HTTP/2 (abbr. HyperText Transfer Protocol/2) is the second major version of the HTTP network protocol, used to access resources on the World Wide Web. The HTTP/2 protocol can significantly speed up the loading of websites due to the following features:

  • reducing the size of technical headers: unlike HTTP versions 1.0 and 1.1, the new protocol compresses technical headers, which reduces the amount of transmitted data;
  • connection multiplexing: HTTP/2 allows multiple requests to be sent over a single TCP connection to the server. This approach reduces the overhead of opening new TCP connections and allows virtually no limit on the number of simultaneously transmitted resources;
  • stream prioritization: the web browser can send priorities to the server, indicating which types of resources are more important to it than others;
  • Initiation of sending data from the server: In the HTTP/2 protocol, the server can proactively send data to the client that it has not yet requested, using, for example, data on which next page users open most often.

The HTTP/2 protocol is supported by the following web servers:

  • Nginx since version 1.9.5;
  • Apache2.4.17 supports HTTP/2 using the mod_http2 module;
  • Lighttpd since version 1.4.59;
  • IIS supports HTTP/2 starting in Windows 10 and Windows Server 2016.