The Evolution of HTTP - Understanding HTTP 0.9, HTTP 1.0, HTTP 1.1, HTTP 2 and HTTP 3

February 2, 2025

Hypertext Transfer Protocol (HTTP) is an application-layer protocol for transmitting hypermedia documents, such as HTML pages, text, images, videos, and much more. It was designed for communication between web browsers and web servers, but it can also be used for other purposes, such as machine-to-machine communication, programmatic access to APIs, and more.

HTTP/0.9

Request:

GET /index.html

Response:

<html>
  Welcome to the example.re homepage!
</html>

HTTP/1.0

HTTP/1.1

Example HTTP/1.1 Request:

GET /api/products HTTP/1.1
Host: www.example.com
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64)
Accept: application/json
Accept-Encoding: gzip, deflate
Accept-Language: en-US, fr;q=0.8
Cache-Control: max-age=3600
Connection: keep-alive

Example HTTP/1.1 Response:

HTTP/1.1 200 OK
Date: Wed, 30 Jan 2025 12:34:56 GMT
Server: Apache/2.4.41 (Ubuntu)
Content-Type: application/json
Content-Encoding: gzip
Transfer-Encoding: chunked
ETag: "abc123etag"
Cache-Control: public, max-age=3600
Vary: Accept-Encoding
Connection: keep-alive

1F
{"id":1,"name":"Laptop"}
14
{"id":2,"name":"Smartphone"}
0

Secure Transmission with SSL and TLS

HTTP for Complex Applications

HTTP/2

HTTP/3

References