Http is an application layer protocol designed for client-server communication and can be made analogy as a kind of mail service simply with the following features:
  • Http header; contains operating information about the message such as destination, content type and etc. in the form of key-value pairs.
  • Payload; is the part that the actual message is contained.
  • HTTP protocol is comprised of commands such as GET, POST, PUT..

History of HTTP by Versions

  • The initial version of HTTP is 0.9 which is released in 1991.
  • HTTP 1.0 is released in 1996.
  • HTTP 1.1 is released in 1997.
  • In 2015, the specification of HTTP/2 as a revised version was published by IETF.

Drawbacks of HTTP 1.1

  • Needs multiple connections for concurrency
  • Does not compress request and response headers, that means unnecessary network traffic


  • The main goals of HTTP/2 are simplicity and performance inspired by the experimental protocol SPDY which is released by Google in 2009.
  • HTTP/2 is an extension to the previous HTTP standards, not replacing of HTTP methods, status codes and etc.
  • HTTP/2 enables a more efficient use of network resources and a reduced perception of latency by introducing 
    • header field compression 
    • server push
    • multiple concurrent exchanges on the same connection
  • HTTP/2 is more friendly to the network, because fewer TCP connections can be used in comparison to HTTP/1.x.

Further readings:



The Convergence of OpenJDK and the Oracle JDK

It's Time For Faster Releases

Project Jigsaw