HTTP (Hypertext Transfer Protocol) is the set of rules for transferring files, such as text, graphic images, sound, video, and other multimedia files, on the World Wide Web. Designed in the early 1990s, HTTP is defined as a client-server protocol, which means requests are initiated by the recipient, usually the Web browser.
HTTP is used to transfer hypertext documents, images, and videos or to post content to servers. Moreover, HTTP can also be used to fetch parts of documents to update Web pages on demand. It is an application layer protocol that is sent over TCP, or over a TLS-encrypted TCP connection. Both TLS and SSL use an asymmetric public key infrastructure. Both public and private keys are used to encrypt the data.
Components of HTTP-based systems are the user-agent, the Web server, and proxies. The user-agent is performed its acting on behalf of the user role by the Web browser. The browser is always the entity initiating the request, by acting as a client and a web server. A server appears as only a single machine virtually. The server hosts the files, and returns are the response to client requests with the data. Depending on the request, the response contains the status of the request.
It has three main goals, including the authentication of the accessed website, protection of the privacy and integrity of the exchanged data while in transit.
History of HTTP
The HTTP protocol used in earlies 1990s was later dubbed HTTP/0.9. HTTP/0.9 is extremely simple. HTTP/1.1 was published in early 1997, only a few months after HTTP/1.0, which built extensibility. HTTP/1.1 protocol was revised over two times. The first one RFC 2616 was published in June 1999, and the series of RFC 7230-RFC 7235 was published in June 2014 in the prevision of the release of HTTP/2.
HTTP/2 has been extremely stable over more than 15 years. HTTP/2 had officially standardized in May 2015. It has had much success. By July 2016, 8.7% of all Web sites were already using it, representing more than 68% of all requests.
Now, the next major version of HTTP, HTTP/3, will use QUIC instead of TCP/TLS for the transport layer portion which means lower latency, lower impact when you switch between networks.
- Related: List of HTTP status and error codes