(HTTP|HTTPS) - Hypertext Transfer Protocol

> (World Wide) Web - (W3|WWW) > (HTTP|HTTPS) - Hypertext Transfer Protocol

1 - About

Hypertext Transfer Protocol (HTTP) is the protocol to exchange or transfer hypertext between nodes (host).

HTTP was originally designed to be usable as an interface to distributed object systems.

This is the most common protocol for transferring web content from server to client (user agent).

HTTP is an application-level protocol for distributed, collaborative, hypermedia information systems.

HTTP is a request/response standard of a client and a server.

A client is the end-user, the server is the web site.

The responding server—which stores or creates resources such as HTML files and images—is called the origin server.

In between the user agent and origin server may be several intermediaries, such as:

HTTP is not constrained to using TCP/IP and its supporting layers, although this is its most popular application on the Internet. Indeed HTTP can be “implemented on top of any other protocol on the Internet, or on other networks.” HTTP only presumes a reliable transport; any protocol that provides such guarantees can be used.“

Typically, an HTTP client initiates a request. It establishes a Transmission Control Protocol (TCP) connection to a particular port on a host (port 80 by default). An HTTP server listening on that port waits for the client to send a request message. Upon receiving the request, the server sends back a status line, such as “HTTP/1.1 200 OK”, and a message of its own, the body of which is perhaps the requested resource, an error message, or some other information.

Resources to be accessed by HTTP are identified using Uniform Resource Identifiers (URIs)—or, more specifically, Uniform Resource Locators (URLs)—using the http: or https URI schemes.

HTTP allows an open-ended set of methods and headers that indicate the purpose of a request. HTTP is also used as a generic protocol for communication between user agents and proxies/gateways to other Internet systems.

HTTP provides also data transfer.

3 - RFC

HTTP is defined in rfc2616 - Hypertext Transfer Protocol -- HTTP/1.1.

It is the union of a set of RFCs:

  • Message Syntax and Routing (rfc7230), R. Fielding, J. Reschke. IETF.
  • Semantics and Content (rfc7231), R. Fielding, J. Reschke. IETF.
  • Conditional Requests (rfc7232), R. Fielding, J. Reschke. IETF.
  • Range Requests (rfc7233), R. Fielding, Y. Lafon, J. Reschke. IETF.
  • Caching (rfc7234), R. Fielding, M. Nottingham, J. Reschke. IETF.
  • Authentication (rfc7235), R. Fielding, J. Reschke. IETF.

4 - Reference