Getting started with HTTP


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.


VersionNote(s)Estimated Release Date
HTTP/0.9"As Implemented"1991-01-01
HTTP/1.0First version of HTTP/1.0, last version that has not made it into an RFC1992-01-01
HTTP/1.0r1First official RFC for HTTP1996-05-01
HTTP/1.1Improvements in connection handling, support for name-based virtual hosts1997-01-01
HTTP/1.1r1Disambiguous keyword usage cleaned up, possible issues with message framing fixed1999-06-01
HTTP/1.1r2Major overhaul2014-06-01
HTTP/2First spec for HTTP/22015-05-01

HTTP requests and responses

HTTP clients and servers send HTTP requests and responses, respectively

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.





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.

This modified text is an extract of the original Stack Overflow Documentation created by the contributors and released under CC BY-SA 3.0 This website is not affiliated with Stack Overflow