Protocolo de transferencia de hipertexto (HTTP)

¿Qué es HTTP?

HTTP (Protocolo de transferencia de hipertexto) es el conjunto de reglas para transferir archivos, como texto, imágenes, sonido, video y otros archivos multimedia, a través de la web. Tan pronto como un usuario abre su navegador web, indirectamente está usando HTTP. HTTP es un protocolo de aplicación que se ejecuta sobre el conjunto de protocolos TCP / IP, que forma la base de Internet. La última versión de HTTP es HTTP / 2, que se publicó en mayo de 2015. Es una alternativa a su predecesor, HTTP 1.1, pero no deja obsoleto.

Cómo funciona HTTP

A través del protocolo HTTP, los recursos se intercambian entre los dispositivos del cliente y los servidores a través de Internet. Los dispositivos cliente envían solicitudes a los servidores de los recursos necesarios para cargar una página web; los servidores envían respuestas al cliente para cumplir con las solicitudes. Las solicitudes y respuestas comparten subdocumentos, como datos sobre imágenes, texto, diseños de texto, etc., que un navegador web cliente reúne para mostrar el archivo completo de la página web.

Además de los archivos de página web que puede servir, un servidor web contiene un demonio HTTP, un programa que espera las solicitudes HTTP y las maneja cuando llegan. Un navegador web es un cliente HTTP que envía solicitudes a los servidores. Cuando el usuario del navegador ingresa solicitudes de archivos "abriendo" un archivo web escribiendo una URL o haciendo clic en un enlace de hipertexto, el navegador genera una solicitud HTTP y la envía a la dirección de Protocolo de Internet (dirección IP) indicada por la URL. El demonio HTTP en el servidor de destino recibe la solicitud y devuelve el archivo solicitado o los archivos asociados con la solicitud.

diagrama de cliente http, internet y servidores

Los dispositivos cliente utilizan HTTP para comunicarse con servidores en línea y acceder a páginas web.

Para ampliar este ejemplo, un usuario desea visitar TechTarget.com. El usuario escribe la dirección web y la computadora envía una solicitud "GET" a un servidor que aloja esa dirección. Esa solicitud GET se envía mediante HTTP y le dice al servidor TechTarget que el usuario está buscando el código HTML (lenguaje de marcado de hipertexto) utilizado para estructurar y darle a la página de inicio de sesión su apariencia. El texto de esa página de inicio de sesión se incluye en la respuesta HTML, pero otras partes de la página, en particular sus imágenes y videos, se solicitan mediante solicitudes y respuestas HTTP separadas. Cuantas más solicitudes se realicen, por ejemplo, para llamar a una página que tiene numerosas imágenes, más tiempo tardará el servidor en responder a esas solicitudes y en que el sistema del usuario cargue la página.

Cuando se envían estos pares de solicitud / respuesta, utilizan TCP / IP para reducir y transportar información en pequeños paquetes de secuencias binarias de unos y ceros. Estos paquetes se envían físicamente a través de cables eléctricos, cables de fibra óptica y redes inalámbricas.

Las solicitudes y respuestas que los servidores y los clientes utilizan para compartir datos entre sí consisten en código ASCII. Las solicitudes indican qué información busca el cliente del servidor; las respuestas contienen código que el navegador del cliente traducirá en una página web.

HTTP frente a HTTPS

HTTPS es el uso de Secure Sockets Layer (SSL) o Transport Layer Security (TLS) como una subcapa en las capas de aplicaciones HTTP normales. HTTPS cifra y descifra las solicitudes de página HTTP del usuario, así como las páginas que devuelve el servidor web. También protege contra escuchas clandestinas y ataques de intermediario (MitM). HTTPS fue desarrollado por Netscape. La migración de HTTP a HTTPS se considera beneficiosa, ya que ofrece una capa adicional de seguridad y confianza.

Solicitudes y respuestas HTTP

Cada interacción entre el cliente y el servidor se denomina mensaje. Los mensajes HTTP son solicitudes o respuestas. Los dispositivos cliente envían solicitudes HTTP a los servidores, que responden enviando respuestas HTTP a los clientes.

Solicitudes HTTP. Esto es cuando un dispositivo cliente, como un navegador de Internet, solicita al servidor la información necesaria para cargar el sitio web. La solicitud proporciona al servidor la información deseada que necesita para adaptar su respuesta al dispositivo del cliente. Cada solicitud HTTP contiene datos codificados, con información como:

  • Siguió la versión específica de HTTP. HTTP y HTTP / 2 son las dos versiones.
  • Una URL. Esto apunta al recurso en la web.
  • Un método HTTP. Esto indica la acción específica que la solicitud espera recibir del servidor en su respuesta.
  • Encabezados de solicitud HTTP. Esto incluye datos como qué tipo de navegador se está utilizando y qué datos busca la solicitud del servidor. También puede incluir cookies, que muestran información enviada previamente desde el servidor que gestiona la solicitud.
  • Un cuerpo HTTP. Esta es información opcional que el servidor necesita de la solicitud, como formularios de usuario (inicios de sesión con nombre de usuario / contraseña, respuestas breves y carga de archivos) que se envían al sitio web.

Respuestas HTTP. El mensaje de respuesta HTTP son los datos recibidos por un dispositivo cliente desde el servidor web. Como sugiere su nombre, la respuesta es la respuesta del servidor a una solicitud HTTP. La información contenida en una respuesta HTTP se adapta al contexto que el servidor recibió de la solicitud. Las respuestas HTTP suelen incluir los siguientes datos:

  • Código de estado HTTP, que indica el estado de la solicitud al dispositivo cliente. Las respuestas pueden indicar éxito, una respuesta informativa, una redirección o errores en el lado del servidor o del cliente.
  • Encabezados de respuesta HTTP, que envían información sobre el servidor y los recursos solicitados.
  • Un cuerpo HTTP (opcional). Si una solicitud tiene éxito, esta contiene los datos solicitados en forma de código HTML, que el navegador del cliente traduce a una página web.

Códigos de estado HTTP

En respuesta a las solicitudes HTTP, los servidores a menudo emiten códigos de respuesta, lo que indica que la solicitud se está procesando, hubo un error en la solicitud o que la solicitud se está redireccionando. Los códigos de respuesta comunes incluyen:

  • 200 OK. Esto significa que la solicitud, como GET o POST, funcionó y se está atendiendo.
  • 300 movidos permanentemente. Este código de respuesta significa que la URL del recurso solicitado se ha cambiado de forma permanente.
  • 401 No autorizado. El cliente, o el usuario que realiza la solicitud del servidor, no ha sido autenticado.
  • 403 Prohibida. Se conoce la identidad del cliente, pero no se le ha dado autorización de acceso.
  • 404 no encontrado. Este es el código de error más frecuente. Significa que no se reconoce la URL o que el recurso en la ubicación no existe.
  • Error interno de servidor 500. El servidor se ha encontrado con una situación que no sabe cómo manejar.

Proxies en HTTP

Los proxies, o servidores proxy, son los servidores de la capa de aplicación, computadoras u otras máquinas que se encuentran entre el dispositivo cliente y el servidor. Los proxies retransmiten solicitudes y respuestas HTTP entre el cliente y el servidor. Normalmente, hay uno o más proxies para cada interacción cliente-servidor.

Los proxy pueden ser transparentes o no transparentes. Los proxies transparentes no modifican la solicitud del cliente, sino que la envían al servidor en su forma original. Los proxies no transparentes modificarán la solicitud del cliente de alguna manera. Los proxies no transparentes se pueden utilizar para servicios adicionales, a menudo para aumentar la velocidad de recuperación del servidor.

Los desarrolladores web pueden usar proxies para los siguientes propósitos:

  • Almacenamiento en caché. Los servidores de caché pueden guardar páginas web u otro contenido de Internet localmente, para una recuperación de contenido más rápida y para reducir la demanda de ancho de banda del sitio.
  • Autenticación Controlar los privilegios de acceso a las aplicaciones y la información en línea.
  • Inicio de sesión. El almacenamiento de datos históricos, como las direcciones IP de los clientes que enviaron solicitudes al servidor.
  • Filtrado web. Controlar el acceso a páginas web que pueden comprometer la seguridad o incluir contenido inapropiado.
  • Balanceo de carga. Las solicitudes de los clientes al servidor pueden ser manejadas por varios servidores, en lugar de uno solo.

Para obtener más información sobre cómo funcionan los proxies y más tipos de proxies, haga clic aquí.