What is HTTP/2 and why is it faster on average than HTTP/1.1?

Overview

HTTP/2 support has been introduced in Abyss Web Server version version 2.16.

While building on the original HTTP protocol, HTTP/2 introduces some major differences in order to speed up serving Web content.

How HTTP/2 is different from its predecessors?

HTTP/2 is a binary protocol

HTTP/2 clients and servers exchange binary messages contrarily to HTTP/1.1 and HTTP/1.0 which are plaintext protocols.

HTTP/2 allows multiplexing

It can serve concurrently multiple requests over the same TCP/IP connection. HTTP/1.0 used to allow a single request over a connection. HTTP/1.1 is a bit better as it allows reusing the same TCP/IP connection to serve many requests sequentially (using its distinctive keep-alive feature.)

HTTP/2 compresses request and response headers

HTTP makes extensive use of headers which contain meta-information about the exchanged payload. These headers are redundant accross requests and responses. HTTP/2's HPACK algorithm takes care of this and reduces header footprint to reduce the bytes required to express a request or a response.

HTTP/1.1 is still at the core of HTTP/2

Despite its novelty, HTTP/2 continues to convey HTTP protocol messages using the same semantics as those already used by HTTP/1.1.

In fact, HTTP/2 is not a new protocol which defines operations from scratch: it is rather a new set of rules to transparently multiplex and encapsulate HTTP messages as defined by the earlier HTTP/1.1 standard.

HTTP/2 will not supercede or replace HTTP/1.1. Both will continue to co-exist next to each other. HTTP/1.1 will continue to be at the core of HTTP/2 exchanges.

No changes are required to benefit from HTTP/2 on Abyss Web Server

Taking advantage of HTTP/2 require almost no changes to your Web sites or Web applications. HTTP/2 adoption will offer a noticeable service speed bump without any update to your configuration change: HTTP/2 will use the same secure port you have already setup to service HTTPS.

This is possible because when the connection is established, the server informs the browser that it supports both h2 and http/1.1 during the SSL/TLS early handshake:

  • If the browser understands HTTP/2, it will acknowledge the protocol use for the rest of the connection.
  • If the browser is old or does not understand HTTP/2, it will ignore that choice and proceed with legacy plain text HTTP/1.1 exchanges.

See also

Keep in touch with us

Sign up for our low volume newsletter to get product announcements, articles and power tips.

or