= Hypertext Transfer Protocol
{c}
The <Hypertext Transfer Protocol> is an application-level <communication protocol> for exchanging requests and responses about resources. In the <client-server model>, an <HTTP request> supplies an <HTTP request method> and target; an <HTTP response> supplies an <HTTP status code> and associated information. <HTTP header fields> convey metadata, and messages can carry content. These semantics are distinct from the particular wire format used by a protocol version.<HTTP Semantics>[Sections3,6 and9: architecture, messages and methods]{ref}
For a concrete exchange, a client can send method `GET` for `https://example.org/manual`. A successful response can carry status `200` and an <HTML> representation of the resource. A response with status `404` instead says that the server did not find a current representation, or is unwilling to disclose one; successful communication does not require successful retrieval.<HTTP Semantics>[Sections9.3.1,15.3.1 and15.5.5: GET,200OK and404NotFound]{ref}
The request's <URL> identifies the target, while the response describes the outcome of this exchange. A later exchange can return different content or a different status. The protocol's stateless request semantics also do not prevent an application from maintaining state: the distinction concerns what a request must mean, not whether a user can have an ongoing session.<HTTP Semantics>[Section3.3: stateless protocol and application interaction]{ref}
Back to article page