Getting started with HTTP
Remarks#
Hypertext Transfer Protocol (HTTP) uses a client-request/server-response model. HTTP is a stateless protocol, which means it does not require the server to retain information or status about each user for the duration of multiple requests. However, for performance reasons and to avoid TCP’ connection-latency issues, techniques like Persistent, Parallel or Pipelined connections may be used.
Versions#
Version | Note(s) | Estimated Release Date |
---|---|---|
HTTP/0.9 | "As Implemented" | 1991-01-01 |
HTTP/1.0 | First version of HTTP/1.0, last version that has not made it into an RFC | 1992-01-01 |
HTTP/1.0r1 | First official RFC for HTTP | 1996-05-01 |
HTTP/1.1 | Improvements in connection handling, support for name-based virtual hosts | 1997-01-01 |
HTTP/1.1r1 | Disambiguous keyword usage cleaned up, possible issues with message framing fixed | 1999-06-01 |
HTTP/1.1r2 | Major overhaul | 2014-06-01 |
HTTP/2 | First spec for HTTP/2 | 2015-05-01 |
HTTP requests and responses
HTTP describes how an HTTP client, such as a web browser, sends an HTTP request via a network to an HTTP server, which then sends an HTTP response back to the client.
The HTTP request is typically either a request for an online resource, such as a web page or image, but may also include additional information, such as data entered on a form. The HTTP response is typically a representation of an online resource, such as a web page or image.
HTTP/1.0
HTTP/1.1
HTTP/2
HTTP/0.9
The first version of HTTP that came into existence is 0.9, often referred to as ”HTTP As Implemented.” A common description of 0.9 is “a subsect of the full HTTP [i.e. 1.0] protocol.” However, this greatly fails to illustrate the disparity in capabilities between 0.9 and 1.0.
Neither requests nor responses in 0.9 feature headers. Requests consist of a single CRLF-terminated line of GET
, followed by a space, followed by the requested resource URL. Responses are expected to be a single HTML document. The end of said document is marked by dropping the connection server-side. There are no facilities to indicate success or failure of an operation. The only interactive property is the search string which is closely tied to the <isindex>
HTML tag.
Usage of HTTP/0.9 is nowadays exceptionally rare. It is occasionally seen on embedded systems as an alternative to tftp.