For the first time since 1999, the web’s key protocol - the Hypertext Transfer Protocol (HTTP) - will be getting an update.
Hypertext Transfer Protocol 1.1 (HTTP/1.1) has been the standard web protocol since June 1999. This was before most of today’s most commonly used websites such as: Imgur (2009), Tumblr (2007), Twitter (2006), YouTube (2005) and Facebook (2004). Even Google was only 9 months old and still looked like this:
Bill Clinton was still President, computer processors had yet to hit over 1GHz, most people were connected through dial up and only 20% of the UK had internet access. So to get the point across: HTTP/1.1 is OLD! Very old in internet time! The web has changed significantly over time and finally, for the first time in 15 years, HTTP - the backbone protocol of the web - will change too.
HTTP/2 background:
In 2009, Google was getting impatient with HTTP/1.1’s growing antiquated design and was looking to provide more speed to its users. With no HTTP/2 in development and previous attempts of creating a more modern protocol failing to get support, Google threw their weight into the game and set out to design their own protocol SPDY. SPDY addresses a lot of HTTP/1.1’s biggest issues to allow for faster performance and was designed to be compatible with the internet’s current architecture. Security is an additional feature of HTTP/2 as browsers require an HTTPS connection to allow the HTTP/2 protocol.
In 2012, with greater calls for an updated web protocol, the Internet Engineering Task Force (IEFT) was offered SPDY as the starting point for HTTP/2 with Google’s blessing. After a further 3 years of development and tweaking, the Internet Engineering Steering Group approved the protocol as standard on the 17th of February 2015. With the final version of HTTP/2 now approved, browsers and servers will be supporting it by default in the coming months with the protocol no longer needing to be enabled through advanced settings.
HTTP/2 Key Features:
First to clarify: HTTP/2 changes how HTTP is used on “the wire”. It’s not a completely new protocol, so HTTP status codes, methods, etc. will remain the same. HTTP/2’s purpose is to fix a number of design flaws and limitations with HTTP/1.1. To resolve these issues the following key features will be coming to HTTP/2:
New Features
- Multiplexing
- HTTP/1.1 does not provide multiplexing functionality, which is the ability to send multiple files at the same time through one connection. HTTP/1.1 is only capable of requesting files one by one on a single connection, which is requesting the file, waiting for a response, downloading the file and then requesting the next. This process is very limiting and can significantly increase page load time on high latency connections with a high number of requests.
- Browsers have been getting around this issue over the years by opening multiple connections usually between 2-6 connections to download multiple files at a time from a website. HTTP/2 will require one single connection to make multiple requests at the same time and download these simultaneously through the one connection.
- Header Compression
- Each HTTP request sent to the server and each HTTP response back will be compressed and transmitted in binary code. HTTP/1.1 requests are all currently in plain text causing a lot of overhead in unnecessary bytes being downloaded. By compressing all headers, it will save downloading a lot of kilobytes and could add up to saving a lot of megabytes in some user sessions.
- Server Push
- Server push is another great feature being added with HTTP/2. Server push will allow servers to ‘push’ content to a visitor without them requesting the content first. This will allow servers to prioritise the content needed to make a page load faster.
SEO Benefits and Drawbacks:
Benefits:
- Potential for sites to load faster
- There is potential to substantially improve page speed performance with the use of HTTP/2, once enough users have updated their browsers to support the protocol and provided the servers delivering the content are HTTP/2 enabled.
- Easy to implement on most HTTPS sites
- For sites already using HTTPS with web servers that support the new standard, enabling the new protocol will be straight forward and little additional work will be required.
- No more hacks
- Methods like domain sharding, image sprites, inlining Javascript and CSS will no longer be as necessary to reducing the number of requests from the server as all requests in HTTP/2 can be thought of as a single logical request/response communication.
- Mobile friendly
- Every kilobyte is precious in mobile web development. By compressing the HTTP headers in HTTP/2, mobile sites with high numbers of requests will waste less bytes from the headers helping to prevent wasted megabytes from being downloaded.
- Backwards compatible
- Servers and browsers which remain only HTTP/1.1 will still be compatible with HTTP/2 servers/browsers. To ensure that the switch to the new protocol is as smooth as possible, the IETF has allowed for backwards compatibility by allowing the server and browser to decide on the connection between them in the initial connection.
Drawbacks:
- Uptake likely to be slow from users and servers
- This is a world where a large number of people continue to use Internet Explorer 8 and many large complex sites on older systems will be unable to make the switch for a number of years. Therefore hacks like image spriting will remain necessary for the coming years.
- Switching from HTTP/1.1 will be difficult if site isn’t already HTTPS
- HTTP/2 was originally going to be HTTPS only, however, the IETF confirmed that the protocol can be used without HTTPS, but Chrome and Firefox are currently unwilling to provide support for the protocol without additional security. Switching a website to HTTPS will remain difficult, requiring all HTTP URLs to be redirected to the HTTPS. HTTPS would then also require to be optimisation for performance.
- Performance impact could be minimal
- Depending on how well- optimised the site currently is for speed, the switch may not be worth it and the additional time needed for the HTTPS handshake could prevent any significant gains.
- HTTP/2 Unknowns
- The protocol is very new, few studies have been conducted on HTTP/2 to determine best practices and possible pitfalls. The first few years of its implementation will require a lot of trial and error to determine these best practices.
Conclusion:
Websites which will see immediate speed benefits to using HTTP/2 at launch will be sites which already use HTTPS. As browsers are only intending to support HTTP/2 on HTTPS connections, no further change will be required other than to enable HTTP/2 on the server. This is great from a technical SEO point of view as it won’t affect the URLs and the less they are changed the better.
Websites looking at switching over to HTTPS in the future should also look to include HTTP/2 in their planning and ensure the new server will support the protocol.
Websites which have no intention of swapping to HTTPS in the coming years should not attempt to rush into HTTP/2. It isn’t yet known if browsers will change their stance and allow for non-HTTPS websites in the coming year and if browser stances are changed then HTTP/2 support could be included without migrating a website to HTTPS and the SEO dangers which come with this.
HTTP/2 like HTTPS should therefore be considered and included in all future website build plans should the need for a switch to a more secure connection arise from the business side or SEO side if Google were to greatly strengthen their HTTPS as ranking signal.