Blog / Development

What You Need to Know About HTTP/2 (WEB 2.0)

Cem Serit

Cem Serit

http2.jpg

When you look at the address bar of your internet browser, you can see HTTP written in front of all internet connections. HTTP, which stands for Hypertext Transfer Protocol, can be described as the protocol we use to retrieve information from a server and display web pages on the screen. The organization responsible for creating internet protocol standards, The Internet Engineering Task Force (IETF), has prepared a new version of the widely used and secure HTTP protocol. HTTP/1.1, which has been in use since 1999, is finally ready to give way to HTTP/2. With HTTP/2, faster transfer and communication between the internet browser and server have begun.

http chart

The Development Stages of HTTP

STATUS DATE STAGE
Completed December 20, 2007 First HTTP 1.1 Revision Internet Draft
Completed January 23, 2008 First HTTP Security Features Internet Draft
Completed Pre-2012 Call for Proposals for HTTP 2.0
Completed October 14 - November 25, 2012 Last Working Group Call for HTTP 1.1 Revision
Completed November 28, 2012 First Working Group Draft of HTTP 2.0 based on draft-mbelshe-httpbis-spdy-00
Pending/Rejected ---- Last Working Group Call for HTTP Security Features
Completed September 2013 Submission of HTTP1.1 Revision to IESG as a Standard Proposal
Completed February 12, 2014 IESG approved the publication of HTTP 1.1 Revision as a Standard Proposal
Completed June 6, 2014 Publication of HTTP 1.1 Revision as RFC [rfc:7230 7230], [rfc:7231 7231], [rfc:7232 7232], [rfc:7233 7233], [rfc:7234 7234], [rfc:7235 7235]
Completed August 1, 2014 - September 1, 2014 Last Working Group Call for HTTP/2
Completed December 16, 2014 Submission of HTTP/2 to IESG as a Standard Proposal
Completed December 31, 2014 – January 14, 2015

IETF's Last Call for HTTP/2

Completed January 22, 2015 IESG teleconference for the review of HTTP/2 as a Standard Proposal
Completed February 17, 2015 IESG's publication of HTTP/2 as a Standard Proposal

Why is HTTP/2 Important?

On websites, there are many different design elements such as standard HTML components, design elements (CSS), client-side codes (Javascript), images, videos, and animations. To transfer this information, different connections are created by the browser. Additionally, there are communication packets or protocols for each resource, destination, and content. These contents create a significant load for both the server and the browser.

web servers communication diagram

As all these connections, contents, and elements are added to the site, slowdowns are observed, and more processing power is required. While everyone wants a fast connection without delay, these delays are undesirable for users. Especially for companies providing online services, long loading times of websites negatively affect user experience, leading to direct financial losses.

http connection

Since people started using the internet, we have been constantly striving to speed it up. Some communities develop ways to provide users with local caching, allowing quick access to content instead of constantly creating connections. Additionally, small techniques have been developed to reduce the resolution of image and video content. Developers have also tried to find solutions for fast connections by optimizing code. All these options have been quite beneficial for fast connections.

Google significantly revised HTTP 1/1 and created SPDY. The results were impressive, and generally, a browser using SPDY communicated faster with the server than HTTP 1/1, even when encryption was applied. At least with SPDY, speed increases of 10-40% were achieved in different situations. In 2012, Google engineers who created SPDY successfully developed a new protocol-based technology and drafted HTTP/2.

What is a Protocol?

A protocol can be described as a set of rules that determine how information will be transferred from one computer to another. Each protocol can have different characteristics. They usually have a header, payload (data to be transferred), and a footer. The header contains source, destination addresses, and some information about the data to be transferred. The payload contains the actual information to be transferred. The footer holds contents to catch potential errors.

http header

Why is HTTP/2 Better Than Others?

If we were to briefly introduce HTTP/2, it speeds up the loading of web pages and prevents time loss for all users. Many tests show a 20% increase in transfer speed, and in more optimized web servers, this number can reach a 30% increase.

page load

Example page load speed for HTTP

page load

Example page load speed for HTTP/2

HTTP/2 creates a constant connection between the server and browser, increasing speed. It also transfers data in binary, sending content in the natural language of computers. This prevents the computer from spending extra time understanding it. Other features like multiplexing, compression, and server push also contribute positively to speed.

http/1 vs http/2 difference

Additionally, to better understand the speed difference between HTTP/1.1 and HTTP/2, I recommend checking out the demo.

Demo: https://http2.akamai.com/demo

Encryption in HTTP/2

While HTTP/1.1 offers encryption using TLS/SSL as HTTPS, HTTP/2 does not have encryption as a standard requirement, but browsers have made it mandatory, and encryption over TLS has become obligatory. As HTTP/2 becomes widespread, a more secure internet will be with us.

How Can We Use HTTP/2?

To establish a connection in HTTP/2 standards, both the server and the internet browser need to support this feature.

To check whether websites meet HTTP/2 standards, click here.

On the server side: Nginx >= 1.9.5 Apache >= 2.4.12 Microsoft ISS (Windows 10, Windows Server 2016) On the browser side: Internet Explorer >= 11 Microsoft Edge >= 13 Firefox >= 46 Chrome >= 45 Safari >= 9.1 (Not fully supported) Opera >= 38 Chrome for Android >= 51 Standard Browser for Android >= 5.6x Opera Mini Not Supported

“Writing is seeing the future.” Paul Valéry