An HTTP technical specification defines a protocol that uses an HTTP-based API with a simplified set of HTTP functions, such as GET and POST, to make API calls. It can also use a Representational State Transfer (REST) client/server architecture in which requests and responses are built around the transfers of resource representations, which are documents that capture the current or intended states of resources. HTTP technical specifications specify the web resources that are accessed and manipulated by the protocol, HTTP operations that can be applied to the resources, and the syntax of request/response payloads.
An HTTP specification can specify either a REST-like or RESTful protocol. In general, "REST-like" refers to a protocol that uses simple URI-based requests to a specific domain over HTTP. "RESTful" refers to a protocol that conforms to certain constraints including a client/server architecture, statelessness, and a uniform interface.
HTTP specifications can contain the following types of normative information, where applicable:
Data definitions (complex types, simple types, attributes, and so on)