O Protocolo de Transferência de Hipertexto (HTTP) é um dos protocolos mais onipresentes na internet. É também um dos poucos protocolos que preenche a lacuna entre os grupos de desenvolvimento de redes e aplicativos, contendo informações usadas por ambos na entrega e no desenvolvimento de aplicativos baseados na web.
HTTP é um método para codificar e transportar informações entre um cliente (como um navegador da web) e um servidor da web. HTTP é o principal protocolo para transmissão de informações pela internet.
As informações são trocadas entre clientes e servidores na forma de documentos de hipertexto, de onde o HTTP recebe seu nome. Hipertexto é um texto estruturado que usa links lógicos, ou hiperlinks , entre nós que contêm texto. Documentos de hipertexto podem ser manipulados usando a Linguagem de Marcação de Hipertexto (HTML). Usando HTTP e HTML, os clientes podem solicitar diferentes tipos de conteúdo (como texto, imagens, vídeo e dados de aplicativos) de servidores web e de aplicativos que hospedam o conteúdo.
O HTTP segue um paradigma de solicitação-resposta no qual o cliente faz uma solicitação e o servidor emite uma resposta que inclui não apenas o conteúdo solicitado, mas também informações de status relevantes sobre a solicitação. Esse design independente permite a natureza distribuída da Internet, onde uma solicitação ou resposta pode passar por muitos roteadores intermediários e servidores proxy. Ele também permite que servidores intermediários executem funções de valor agregado, como balanceamento de carga, armazenamento em cache, criptografia e compactação.
O HTTP é um protocolo de camada de aplicação e depende de um protocolo de camada de rede subjacente, como o Transmission Control Protocol (TCP), para funcionar.
O funcionamento interno do HTTP, particularmente os cabeçalhos usados pelo cliente e pelo servidor para trocar informações sobre estado e recursos, geralmente têm impacto no desempenho de aplicativos baseados na Web. Entender o HTTP e como esses cabeçalhos controlam o comportamento desses aplicativos pode levar a um melhor desempenho para o usuário final, além de facilitar a escolha de uma solução de aceleração de aplicativos que solucione as deficiências do HTTP e das soluções baseadas em navegador.