HTTP (Protocolo de Transferencia de Hipertexto)

HTTP (Hypertext Transfer Protocol) es el protocolo fundamental que se utiliza para transferir archivos en Internet.

Escrito por:

Publicado:

http que es
Inicio » Definición » HTTP (Protocolo de Transferencia de Hipertexto)

Sin HTTP (Protocolo de transferencia de hipertexto), la World Wide Web tal como la conocemos hoy no existiría. HTTP es el protocolo que permite la transferencia de datos a través de Internet, lo que permite a los usuarios acceder a sitios web y otros recursos online.

¿Qué es HTTP?

HTTP (Protocolo de Transferencia de Hipertexto) es el conjunto de reglas para transferir archivos -como texto, imágenes, sonido, vídeo y otros archivos multimedia- a través de la web. En cuanto un usuario abre su navegador web, está utilizando HTTP indirectamente. HTTP es un protocolo de aplicación que se ejecuta sobre el conjunto de protocolos TCP/IP, que constituye 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 lo hace obsoleto.

Cómo funciona HTTP

El protocolo HTTP permite el intercambio de recursos entre dispositivos cliente y servidores a través de Internet. Los dispositivos cliente envían solicitudes a los servidores para obtener los recursos necesarios para cargar una página web; los servidores envían respuestas al cliente para satisfacer las solicitudes. Las peticiones y las respuestas comparten subdocumentos -como datos sobre imágenes, texto, diseños de texto, etc.- que se reúnen por medio de un servidor. — que un navegador web cliente reúne para mostrar el archivo de la página web completa.

Además de los archivos de páginas web que puede servir, un servidor web contiene un daemon HTTP, un programa que espera peticiones HTTP y las gestiona cuando llegan. Un navegador web es un cliente HTTP que envía peticiones a los servidores. Cuando el usuario del navegador introduce solicitudes de archivos, ya sea «abriendo» un archivo web tecleando una URL o haciendo clic en un enlace de hipertexto, el navegador construye una solicitud HTTP y la envía a la dirección de Protocolo de Internet (dirección IP) indicada por la URL. El daemon HTTP del servidor de destino recibe la petición y devuelve el archivo o archivos solicitados asociados a la petición.

Para ampliar este ejemplo, un usuario quiere visitar ElectronicaOnline.net. El usuario teclea la dirección web y el ordenador envía una petición «GET» al servidor que aloja esa dirección. Esa solicitud GET se envía utilizando HTTP y le dice al servidor de ElectronicaOnline que el usuario está buscando el código HTML (Hypertext Markup Language) utilizado para estructurar y dar a la página de inicio de sesión su aspecto. El texto de la página de inicio de sesión se incluye en la respuesta HTML, pero otras partes de la página, en particular las imágenes y los vídeos, se solicitan mediante peticiones y respuestas HTTP independientes. Cuantas más peticiones se hagan -por ejemplo, para llamar a una página que tiene numerosas imágenes- más tardará el servidor en responder a esas peticiones y el sistema del usuario en cargar la página.

Cuando se envían estos pares de solicitud/respuesta, utilizan TCP/IP para reducir y transportar la 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 peticiones y respuestas que los servidores y clientes utilizan para compartir datos entre sí constan de código ASCII. Las peticiones indican la información que el cliente desea obtener del servidor; las respuestas contienen el código que el navegador del cliente traducirá en una página web.

HTTP vs HTTPS

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

Peticiones y respuestas HTTP

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

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

  • La versión específica de HTTP que se sigue. 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 el tipo de navegador que 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 maneja 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 y contraseña, respuestas breves y cargas de archivos) que se envían al sitio web.

Respuestas HTTP. El mensaje de respuesta HTTP son los datos que recibe un dispositivo cliente del servidor web. Como su nombre indica, 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 servidor o en el cliente.
  • Encabezados de respuesta HTTP, que envían información sobre el servidor y los recursos solicitados.
  • Un cuerpo HTTP (opcional). Si una solicitud es exitosa, este 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 peticiones HTTP, los servidores suelen emitir códigos de respuesta que indican que la petición se está procesando, que ha habido un error en la petición o que la petición se está redirigiendo. Los códigos de respuesta más comunes son:

  • 200 OK. Esto significa que la solicitud, como GET o POST, funcionó y se está actuando en consecuencia.
  • 300 Movido permanentemente. Este código de respuesta significa que la URL del recurso solicitado ha sido cambiada permanentemente.
  • 401 No autorizado. El cliente, o usuario que realiza la petición al servidor, no ha sido autenticado.
  • 403 Forbidden. Se conoce la identidad del cliente pero no se le ha dado autorización de acceso.
  • 404 No encontrado. 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.
  • 500 Error interno del servidor. 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 interponen entre el dispositivo cliente y el servidor. Los proxies retransmiten las peticiones y respuestas HTTP entre el cliente y el servidor. Normalmente, hay uno o más proxies para cada interacción cliente-servidor.

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

Los desarrolladores web pueden utilizar proxies para los siguientes fines:

  • Caching. Los servidores de caché pueden guardar páginas web u otros contenidos de Internet localmente, para recuperar contenidos más rápidamente y reducir la demanda de ancho de banda del sitio.
  • Autenticación. Control de los privilegios de acceso a las aplicaciones y a la información en línea.
  • Registro. Almacenamiento de datos históricos, como las direcciones IP de los clientes que envían solicitudes al servidor.
  • Filtrado web. Control del acceso a páginas web que pueden comprometer la seguridad o incluir contenidos inapropiados.
  • Equilibrio de carga. Las peticiones de los clientes al servidor pueden ser gestionadas por varios servidores, en lugar de uno solo.

¿Te ha resultado útil esta información?

No
¡Gracias por tus comentarios!