A Look at HTTP/2 And its Improved Performance
HTTP/2 is the first version of HTTP since its release of HTTP1.1 in the year 1997.
The earlier versions of the HTTP protocol were actually designed for simple implementation, but this implementation of simplicity came at the cost of performance.
HTTP/1.x users had to use various connections to attain concurrency and also reduce latency. It did not compress the response headers and request and this caused unnecessary network traffic and also did not allow effective prioritization of resources. This finally resulted in poor utilization of the underlying TCP connection and etc.
Though these limitations were not fatal, but with the growth in scope, complexity and importance of web applications in our daily lives, the burden on the developers as well as the users continued to grow. And this is why the HTTP/2 was actually designed for.
The Story of SPDY and HTTP2
SPDY was a protocol that was developed by Google and its primary goal was to minimize the load latency of the web pages by addressing some of the performance limitations of HTTP/1.1. some of the prime objectives included
- 50% reduction in page loading time.
- Reduce deployment complexity and avoid any changes in the networking infrastructure
- Avoid any changes to content by website authors
- Collect real performance data to validate the experimental protocol.
The new protocol was supported in Chrome, Opera, Firefox and was also used by numerous sites like Google, Facebook, Twitter and etc. SPDY was in fact adopted by various industries. Observing this, the HTTP Working Group started a new effort to improve on the lessons learnt from SPDY. They delivered an official HTTP/2 standard and after a lot of discussion the SPDY specification was adopted by the new HTTP/2 protocol.
The primary focus of HTTP2 was on improved performance and some key features included header compression, protocol negotiation, multiplexing and etc. The evolution helped browsers, servers and website developers gain real world experience as the protocol was developed. The result was that HTTP/2 standard became the best and most extensively tested standard.
HTTP/2 allows more effective use of network resources by introducing the header field compression and enabling multiple concurrent exchanges on the same connection. It enables interleaving of response and request messages on the same connection and uses effective coding for HTTP header fields. It allows to set priority of requests, thereby letting important requests to complete quickly and this ultimately helps in improving the performance.
Another thing which is very important is to note that HTTP/2 is extending, but not substituting the previous HTTP standards. The application semantics are the same and there were no changes made in the core concepts like HTTP methods, URIs, header fields, status codes and etc.
“In fact, the prime goal of HTTP/2 is to reduce the latency by allowing full requests and minimize protocol overhead and response multiplexing via effective compression HTTP headers. In order to implement these requirements, there is a supporting cast of protocol enhancements like new flow control, upgrade mechanisms, error handling and these features should be clearly understood by ever web developer to leverage in their applications. “