This page documents HTTP protocol evolution over the years and how HTTP2 will make applications faster, simpler and more robust.
HTTP/2 Protocol Evolution
The primary goal of HTTP/2 was to reduce latency by enabling full request and response multiplexing, minimize protocol overhead via efficient compression of HTTP header fields, and add support for request prioritization and server push. HTTP/2 supports all of the core features of HTTP/1.1 i.e. all the core concepts, such as HTTP methods, status codes, URIs, and header fields remains the same.
Binary Format HTTP/1.1 used to process text commands to complete request-response cycles. HTTP/2 will use binary format (in 1s and 0s) for client-server request response communication i.e. browsers using HTTP/2 implementation will convert the text commands into binary before transmitting it over the network. Hence, it automatically improves performance by having low overhead in parsing data and by having lower network footprint.
Header Compression Header compression using improved algorithms that improve performance as well as security.
Multiplexing and concurrency In HTTP/2, only single TCP connection is required to ensure effective network resource utilization despite transmitting multiple data streams. Also, the responses can be received out of order - eliminating the need for multiple connections between the client and the server.
Stream Prioritization HTTP/2 works on streams instead of pipelining. HTTP/2 implementation allows the client to provide preference to particular data streams. Although the server is not bound to follow these instructions from the client, the mechanism allows the server to optimize network resource allocation based on end-user requirements.
HTTP/2 Server Push The server can prioritize pushed resources – a key performance differentiator in HTTP/2 vs HTTP1.
HTTP/2 Adoption and quick facts
- As of 2016, Most of the browsers support HTTP2 - 70%
- As of 2016, Most of Servers support HTTP2
- As of 2016, 24% of firefox traffic is HTTP2