Sunday, June 14, 2015

HTTP/2 is here!

The Internet we know is changing! IPv6 is already in use as we ran out of IPv4 addresses, 802.11ac standard in use which provides hi speed wireless communications and now comes HTTP/2 that is Hypertext Transfer Protocol 2.0. The current version in use is HTTP 1.1 which will soon be replaced by HTTP 2.0. It is based on SPDY protocol.

HTTP 1.1 is standardized in RFC 2068 published in January 1997 and HTTP 2.0 is standardized in RFC 7540 published in May 2015. It is developed by IETF HTTPbis Working Group which includes Mozilla and Google developers. HPACK compression was devised for header compression as GZIP was not safe anymore. HPACK is standardized in RFC 7541 published in May 2015. Compression reduces RTT for header transfer due to slow start of TCP.

HTTP/1.x is textual while HTTP/2.0 is binary. Benefits of binary are that it is easy to parse and less error prone. HTTP/2 over TLS has protocol id h2. h2c protocol id is for non encrypted version of HTTP/2. HTTP/1.1 is 15 years old and the efforts are made to improve how to put HTTP data onto the wire for better efficiency and not to change how HTTP works.

Goals for HTTP/2 are:
  • Fixing the Head-of-Line Blocking by Request and Response Multiplexing
  • Compression of HTTP Headers
  • Request Prioritization
  • Server Push
HTTP/2 is already available in major browsers like Firefox and Chrome if you are using an updated version. It was available since long as an implementation of SPDY. You can take HTTP/2 test for your browser made by Akamai: https://http2.akamai.com/demo

HTTP/1.1:

SPDY:

HTTP/2:

Why SPDY is a base for HTTP/2:

Highlights on HTTP/2:


References: