The first version of HTTP, referred to as HTTP/0.9, was a simple protocol for raw data transfer across the Internet.HTTP/1.0, as defined by RFC 1945 , improved the protocol by allowing messages to be in the format of MIME-like messages, containing metainformation about the data transferred and modifiers on the request/response semantics.
This specification defines the protocol referred to as "HTTP/1.1".
This protocol includes more stringent requirements than HTTP/1.0 in order to ensure reliable implementation of its features.
Practical information systems require more functionality than simple retrieval, including search, front-end update, and annotation.
HTTP allows an open-ended set of methods and headers that indicate the purpose of a request .
It builds on the discipline of reference provided by the Uniform Resource Identifier (URI) , as a location (URL)  or name (URN) , for indicating the resource to which a method is to be applied.
Messages are passed in a format similar to that used by Internet mail  as defined by the Multipurpose Internet Mail Extensions (MIME) .
HTTP is also used as a generic protocol for communication between user agents and proxies/gateways to other Internet systems, including those supported by the SMTP , NNTP , FTP , Gopher , and WAIS  protocols.
In this way, HTTP allows basic hypermedia access to resources available from diverse applications.
Fielding Request for Comments: 2616 UC Irvine Obsoletes: 2068 J. HTTP has been in use by the World-Wide Web global information initiative since 1990.
A feature of HTTP is the typing and negotiation of data representation, allowing systems to be built independently of the data being transferred.
It is a generic, stateless, protocol which can be used for many tasks beyond its use for hypertext, such as name servers and distributed object management systems, through extension of its request methods, error codes and headers .