Evolution of HTTP

Learn about different versions of HTTP, their features, and shortcomings.

Introduction

HTTP is a widely used protocol, which directs the communication between clients and servers. This protocol was proposed and developed by Tim Berners-Lee in 1991. Over the years, this protocol has undergone many modifications that have made it feature-rich, flexible, and simple. In this lesson, we’ll compare different HTTP versions that enable us to choose a specific version for designing an API for a particular service. We discuss the following HTTP versions in the table below.

Version

Release Year

HTTP/0.9

1991

HTTP/1.0

1996

HTTP/1.1

1997

HTTP/2.0

2015

HTTP/3.0

2019

HTTP/0.9

HTTP/0.9 was the initial version of HTTP. It was the simplest client-server and request-response protocol. This version of HTTP only had the support of the GET request method, and similarly, the response would consist of hypertext only. This version had no support for HTTP headers; as a result, this version couldn't transfer other content-type files. The connection would also terminate immediately after sending the response.

HTTP/1.0

HTTP/1.0 was a browser-friendly protocol that supported HTTP header fields—including rich metadata—for requests and responses. As a result, the response was not limited to just hypertext, but could transfer other types of files, such as scripts, stylesheets, and media. HTTP/1.0 brought a number of changes to its infant version of HTTP/0.9. The HTTP/0.9 version's specification was about a page long; however, the HTTP/1.0 RFCBerners-Lee, T., R. Fielding, and H. Frystyk. “Hypertext Transfer Protocol -- HTTP/1.0.” RFC Editor, May 1, 1996. https://www.rfc-editor.org/rfc/rfc1945. came in at 60 pages. In comparison to HTTP/0.9, HTTP/1.0 had the support of three HTTP methods: HEAD, GET, and POST. Apart from the support of various HTTP methods, HTTP/1.0 used some ideas that we’re familiar with, for example, headers, response status codes, errors, redirection, conditional requests, and encoding.

The drawbacks of HTTP/1.0

In HTTP/1.0, the notable flaws highlighted below had to be addressed:

  • Non-persistent: An issue with HTTP/1.0 is its inability to keep the connection open between requests. ...