El Hypertext Transfer Protocol (HTTP) es uno de los protocolos más presentes en Internet. Es también uno de los pocos que salva la brecha entre la red y los grupos de desarrollo de aplicaciones, conteniendo la información que usan las aplicaciones basadas en web tanto en la entrega como en el desarrollo.
HTTP es un método para codificar y transportar información entre un cliente (como un navegador web) y un servidor web. HTTP es el protocolo principal para la transmisión de información a través de Internet.
La información se intercambia entre clientes y servidores en forma de documentos de hipertexto, de donde el protocolo HTTP toma su nombre. El hipertexto es texto estructurado que utiliza enlaces lógicos, o hipervínculos , entre nodos que contienen texto. Los documentos de hipertexto se pueden manipular utilizando el lenguaje de marcado de hipertexto (HTML). Mediante HTTP y HTML, los clientes pueden solicitar distintos tipos de contenido (como texto, imágenes, vídeos y datos de aplicação ) a servidores web y de aplicação que alojan el contenido.
HTTP sigue un paradigma de petición-respuesta en el que el cliente realiza una petición y el servidor emite una respuesta que incluye no solo el contenido solicitado, sino también información de estado relevante sobre la petición. Este diseño autónomo permite la naturaleza distribuida de Internet, donde una petición o respuesta puede pasar por muchos enrutadores intermedios y servidores proxy. También permite a los servidores intermedios realizar funciones de valor añadido como el equilibrio de carga, el almacenamiento en caché, el cifrado y la compresión.
HTTP es un protocolo de capa de aplicación y depende de un protocolo de capa de red subyacente como el protocolo de control de transmisión (TCP) para funcionar.
El funcionamiento interno del HTTP, en particular los encabezados que utilizan el cliente y el servidor para intercambiar información sobre el estado y las capacidades, suele repercutir en el rendimiento de las aplicaciones basadas en la web. Entender el HTTP y la forma en que estos encabezados controlan el comportamiento de esas aplicaciones puede mejorar el rendimiento del usuario final y facilitar la elección de una solución de aceleración de aplicaciones que resuelva las deficiencias del HTTP y las soluciones basadas en navegador.