Hypertext Transfer Protocol (HTTP) is one of the most ubiquitous protocols on the internet. It is also one of the few protocols that bridges the gap between networking and application development groups, containing information used by both in the delivery and development of web-based applications.
HTTP is a method for encoding and transporting information between a client (such as a web browser) and a web server. HTTP is the primary protocol for transmission of information across the internet.
Information is exchanged between clients and servers in the form of hypertext documents, from which HTTP gets its name. Hypertext is structured text that uses logical links, or hyperlinks, between nodes containing text. Hypertext documents can be manipulated using the Hypertext Markup Language (HTML). Using HTTP and HTML, clients can request different kinds of content (such as text, images, video, and application data) from web and application servers that host the content.
HTTP follows a request‑response paradigm in which the client makes a request and the server issues a response that includes not only the requested content, but also relevant status information about the request. This self‑contained design allows for the distributed nature of the internet, where a request or response might pass through many intermediate routers and proxy servers. It also allows intermediary servers to perform value‑added functions such as load balancing, caching, encryption, and compression.
HTTP is an application‑layer protocol and relies on an underlying network‑layer protocol such as Transmission Control Protocol (TCP) to function.
The inner workings of HTTP, particularly the headers used by the client and the server to exchange information regarding state and capabilities, often have an impact on the performance of Web-based applications. Understanding HTTP and how these headers control the behavior of those applications can lead to better end-user performance, as well as making it easier to choose an application acceleration solution that addresses the shortcomings of HTTP and browser-based solutions.