Evolution of HTTP Versions
HTTP has changed a lot over time. Each version tried to solve the limitations of the previous one while preserving the basic semantics of requests, responses, methods, and status codes.
Version | Key Characteristics | Main Limitation or Improvement |
|---|---|---|
HTTP/0.9 | Very simple, only | Too limited for growing web needs |
HTTP/1.0 | Added versioning, headers, more methods, better response metadata | Typically used a new TCP connection for each request |
HTTP/1.1 | Persistent connections, better caching, | Still text-based and affected by head-of-line issues at the application level |
HTTP/2 | Binary framing, multiplexing, header compression, better performance over one connection | Still runs over TCP, so TCP-level head-of-line blocking remains |
HTTP/3 | Runs over QUIC on UDP, faster connection setup, better multiplexed transport behavior | Newer deployment model and different transport layer behavior |
HTTP/0.9 to HTTP/1.1
The earliest HTTP version, HTTP/0.9, was extremely small. It supported only GET and had no headers. It was enough for early document retrieval, but not enough for the modern web.
HTTP/1.0 introduced more structure. It added headers, status handling, and broader support for content types. But it often opened a separate TCP connection for each resource, which was inefficient when pages needed many files.
HTTP/1.1 became the long-standing foundation of the web. It introduced persistent connections, better caching behavior, chunked transfer encoding, and the required Host header, which helped virtual hosting and made web infrastructure far more practical.
HTTP/2 and Multiplexing
HTTP/2 focused strongly on performance. Instead of plain text message framing, it introduced binary framing and multiplexing.
That means multiple requests and responses can share one connection more efficiently. HTTP/2 also reduced header overhead and improved page loading performance for websites with many assets.
Its main advantages include:
Binary protocol format: More efficient parsing than plain text framing
Multiplexing: Multiple streams over a single connection
Header compression: Reduces repeated header overhead
Better connection use: Less need for multiple parallel connections
Even with these improvements, HTTP/2 still relies on TCP underneath.
HTTP/2
Be the first to add a comment.