HTTP Abstraction Stack
Application
Stage | Headers |
---|---|
Transport |
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. |
Protocol |
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). |
Message |
Metadata that applies to the current message sent between nodes.
|
Data |
Information that intermediate nodes may modify without significantly changing the semantics of the request. Details vary significantly between HTTP versions.
|
Request |
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.
|
Resource |
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).
|
Message Body
Stage | Headers |
---|---|
Message |
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 |
Connection information specific to the origin server.
|
Representation |
The message body after all network and origin server encodings have been decoded.
|
Resource |
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.
|