8.1.1 HTTP/2 protocol and its support
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.