El Protocolo de Transferencia de HiperTexto es un sencillo protocolo cliente-servidor que articula los intercambios de información entre los clientes Web y los servidores HTTP o paginas Web.
Tim Berners Lee lo propuso atendiendo a las necesidades de un sistema global de distribución de información como el World Wide Web.
HTTP se basa en sencillas operaciones de solicitud/respuesta. Un cliente establece una conexión con un servidor y envía un mensaje con los datos de la solicitud. El servidor responde con un mensaje similar, que contiene el estado de la operación y su posible resultado. Todas las operaciones pueden adjuntar un objeto o recurso sobre el que actúan; cada objeto Web (documento HTML, fichero multimedia o aplicación CGI) es conocido por su URL.


El protocolo HTTP sirve esencialmente para cargar los elementos de la pagina y sirve para que los 2 elementos de la comunicación se puedan comunicar en un mismo lenguaje.


Cada vez que un cliente realiza una petición a un servidor, se ejecutan los siguientes pasos:

-Un usuario accede a una URL, seleccionando un enlace de un documento HTML o introduciéndola directamente en el campo Location del cliente Web.
-El cliente Web descodifica la URL, separando sus diferentes partes. Así identifica el protocolo de acceso, la dirección DNS o IP del servidor, el posible puerto opcional (el valor por defecto es 80) y el objeto requerido del servidor.
-Se abre una conexión TCP/IP con el servidor, llamando al puerto TCP correspondiente.
-Se realiza la petición. Para ello, se envía el comando necesario (GET, POST, HEAD,…), la dirección del objeto requerido (el contenido de la URL que sigue a la dirección del servidor), la versión del protocolo HTTP empleada (casi siempre HTTP/1.0) y un conjunto variable de información, que incluye datos sobre las capacidades del browser, datos opcionales para el servidor,…
-El servidor devuelve la respuesta al cliente. Consiste en un código de estado y el tipo de dato MIME de la información de retorno, seguido de la propia información.
Se cierra la conexión TCP.