1. HTTP (Hypertext Transfer Protocol)

  1. HTTP Abstraction Stack
    1. Application
    2. Message Body
    3. Referenced specifications

HTTP Abstraction Stack



TCP or other reliable transport

Responsible for passing packets carrying HTTP requests to next node in HTTP path, for ensuring the reliable transport of this stream, and has no understanding of HTTP.


HTTP stream processing one or more requests. May be one of several versions.

Not necessarily associated with a specific user-agent, and can typically pipeline multiple requests (including from different user-agents).


Metadata that applies to the current message sent between nodes.

  • TCP connection
  • CONNECT method
  • Connection
  • Via
  • Expect
  • Max-Forwards

Information that intermediate nodes may modify without significantly changing the semantics of the request. Details vary significantly between HTTP versions.

  • Transfer-Encoding / TE
  • Trailer
  • Content-Length

Metadata that applies to this request made to the origin server, processed by the origin server. Information at this layer can be passed through all different HTTP versions without loss of semantics.

  • status code / method
  • Server / From, User-Agent, Referer
  • Host
  • request-URI
  • Date
  • Retry-After
  • Range

Information that's about the resource as it exists on the server, and so won't change between requests (unless it changes on the server).

  • Allow
  • ETag
  • Last-Modified
  • Content-Location

Message Body


Connection information specific to sending the message body over a particular version of HTTP or just between hops.

Data here may be encoded by a Transfer-Encoding

  • Transfer-Encoding / TE
  • Trailer
  • Content-Length

Connection information specific to the origin server.

  • Content-Encoding

The message body after all network and origin server encodings have been decoded.

  • Range / Accept-Range

Metadata that applies to the resource as it exists on the server, and does not change with e.g. Range requests, or any sort of compression.

  • ETag
  • Last-Modified
  • Content-Location
  • Content-Language
  • Content-Type

Referenced specifications