Tuesday, March 28, 2017

What is HTTP2, HTTP/2, SPDY?


History:

HTTP – hypertext transfer protocol. It’s an Application protocol to exchange hypertext or hypermedia over World Wide Web. Hyper text\media means, a HTML page is nothing but a text document contains links to other documents or media. So user can open a web page and traverse to other pages and come back.
The term hypertext was coined by Ted Nelson in 1965 for his xanadu project.
But actual credit goes to Tim Berners Lee and his team at CERN. In 1989, He proposed a system to track tons information\data created by LHC. Basically, Tim wanted to create a system to link documents and access over network.

Evolution of HTTP:

HTTP/0.9

1989. Simplest, it just had a single method GET, no headers. It supported just to fetch text documents, no images.

HTTP/1.0

1995. By this time http proven its potential. RFC 1945 introduced, headers, response codes, errors …

HTTP/1.1

1996 to 2010 (approx.) 1.1 has six RFCs, addressing issues of message, cache, pipeline, semantics …

SPDY

2009, google proposed alternative to HTTP they called it SPDY. It contains features like multiplexing, framing, header compression, etc.

HTTP/2

May 14, 2015. SPDY was the driving force of HTTP/2. RFC 7540 made official of HTTP/2
Data compression of headers, Multiplex, Pipelining of requests, Server push, Priority requests…

Why HTTP2?


To know answer for question why http2, we have to understand evolution of http. It started with simple GET, serving simple html/text pages to present serving a text file to ultra hd video over internet. When a user types and enter a url on a browser, behind the scene a series of action will be performed before user sees what they want. Briefly here is what happens: Resolve Hostname (DNS), Open TCP connection, Handshake, Get Data …
In simple word answer to above question is “Latency”. How much time it takes to get data from server to client. Previous versions of http were struggling to handle modern, high volume traffics. HTTP/2 will address drawbacks of earlier versions. So HTTP/2 enhances existing http features and speed up process to get by implementing clever techniques.

Most of the modern browsers and web servers support http/2 features. Say thanks to google and IETF.