How has HTTP evolved over the years?

HTTP (Hypertext Transfer Protocol) is a method that allows the transfer of hypertextHypertext refers to a word, phrase or body of text that can be linked to another document or text. while adhering to a particular protocolA protocol is a standardized set of rules for formatting and processing data.. In the context of the internet, HTTP enables web pages to be linked together. It follows the client/server model.

HTTP functions on the application layer allow data to be sent/received on TCP connections established between the client and server. The current state of HTTP used widely has been through various iterations, which are discussed below:

Note: To learn more about HTTP, refer to this Answer.

HTTP/0.9

HTTP/0.9 is known as the "one-line protocol." The first HTTP version was 0.9 and was numbered to differentiate it from the subsequent versions. This version of HTTP was very rudimentary.

It:

  • Only contained GET methods.

  • Didn't need the full URL for the path to a requested resource.

  • Didn't contain headers.

  • Didn't contain status codes.

    • In case of an error, an HTML file that included the description of the error would be sent to the client.

The process of receiving a file over HTTP/0.9 looks like the following code:

GET /resourcepage.html
<HTML>
This is the requested page.
</HTML>

HTTP/1.0

In HTTP/ 1.0, the browsers and servers would add more features individually and gauge which ones would gain traction. This led to various interoperability issues that were eventually resolved in November 1996 with the arrival of a document known as the RFC 1945.

The RFC 1945 gathered the features that had gained traction. The HTTP/1.0 contains the following features:

  • Versioning information (being HTTP/1.0) within the request message

  • HTTP headers (these allowed the transfer of metadata)

    • The Content-Type header allowed files other than plain HTML (e.g., images) to be exchanged.

  • Status codes

  • POST and HEAD methods

Note: To learn more about POST, HEAD, and the other HTTP methods referenced in this Answer, refer to this link.

The process of receiving a file over HTTP/1.0 is as follows:

GET /resourcepage.html HTTP/1.0
User-Agent: NCSA_Mosaic/2.0 (Windows 3.1)
200 OK
Date: Tue, 09 Aug 2022 02:29:50 GMT
Server: CERN/3.0 libwww/2.17
Content-Type: text/html
<HTML>
This is the requested page.
</HTML>

HTTP/1.1

A few months after HTTP/1.0 was introduced, HTTP/1.1 was published in January 1997 in the RFC 2068. This was the first standardized version of HTTP.

Several extensions were added to HTTP/1.0 in HTTP/1.1, some of which are:

  • Persistent connections

  • Lower latency due to pipeliningPipelining is the ability to send a second request before the response to the first request is fully transmitted.

  • Additional cache control mechanisms

  • Host header, which provided the ability for the client and server to agree on which content to exchange

  • Support for server colocationServer colocation is the ability to host different domains from the same IP address., multiple languages, manual compression/decompression

  • PUT, PATCH, DELETE, CONNECT, OPTIONS, TRACE methods

HTTP/2

Approximately 18 years after HTTP/1.1 was introduced, HTTP/2 was unveiled in 2015 in the RFC 7540.

This version implemented numerous features to improve the protocol's connections and data exchange, thereby increasing its performance and ability to handle increasingly complex web pages. Some of these features include:

  • Shifting from plain text protocols (used in previous HTTP versions) to a binary protocol

  • Server pushIn server push, the server tries to predict the resources that will be requested soon, so it proactively pushes these resources to the client cache. functionality to prevent a server from receiving a lot of requests

  • Automatic compression of request and response messages.

  • MultiplexingMultiplexing enables the sending requests and receiving requests asynchronously. This means that multiple requests can be sent at the same time using a single connection. request messages

  • Assigning priority within a group of request messages

The largest feature of HTTP/2 is that it can be adopted without making changes to websites and applications. This is what's enabled nearly half of all websites to use HTTP/2.

HTTP/3

HTTP/3 is an experimental protocol that uses Quick UDP Internet Connection (QUIC) instead of the current combination of TCP and TLS. While only published in RFC 9114 in June 2022, this protocol is supported by 75% of web browsers.

Free Resources

Copyright ©2025 Educative, Inc. All rights reserved