HTTP (HyperText Transfer Protocol
Description
HTTP is a data transfer protocol designed for accessing the content of the World Wide Web. It is normally carried by a TCP connection on port 80. Content is identified by means of a URL (Uniform Resource Locator) with a scheme name of http
.
The original version of HTTP supported downloading only, but HTTP/1.0 added uploading of form data, and HTTP/1.1 directly supports the uploading of documents. A set of extensions called WebDAV provide further support for manipulating uploaded content, such as copying, moving, and setting properties.
By itself HTTP does not provide a secure connection, but it can be used in conjunction with SSL or TLS where this is a requirement. The default port number for this combination of protocols is 443 and the URL scheme name is https
.
HTTP has found many applications beyond that for which it was originally intended. Examples include:
- acting as a transport mechanism for protocols such as XML-RPC and SOAP;
- providing remote access to revision control systems such as Subversion or Git; and
- use as a distributed filing system by means such as davfs2 or fusedav.
At the time of writing the most popular HTTP server was Apache. Other Open Source HTTP servers include nginx and lighttpd.
microHOWTOs
- Configure Apache as a reverse proxy
- Fetch the content of a given URL in Perl using LWP::Simple
- Fetch the content of a given URL in Perl using LWP::UserAgent
- Make an AJAX request using XMLHttpRequest
- Redirect HTTP requests from one domain to another using Apache
See also
Further reading
- Tim Berners-Lee, The Original HTTP as defined in 1991 (HTTP 0.9)
- Berners-Lee et al, Hypertext Transfer Protocol — HTTP/1.0, RFC 1945, IETF, May 1996
- Fielding et al, Hypertext Transfer Protocol — HTTP/1.1, RFC 2616, IETF, June 1999