¿Qué es HTTP?
El Protocolo de Transferencia de Hipertexto (HTTP) es un conjunto de reglas para transferir archivos multimedia a través de la web. HTTP es un protocolo de capa de aplicación que especifica procedimientos de comunicación compartidos y métodos de interfaz utilizados por clientes o servidores en una red de comunicación.
HTTP es un protocolo sin estado que desempeña un papel esencial en la introducción de cookies. Comunica entre clientes y servidores y realiza un conjunto de solicitudes y respuestas.
Un cliente o navegador envía una solicitud HTTP a la web. El servidor web recibe la solicitud, ejecuta una aplicación para procesarla y devuelve una respuesta HTTP al navegador. Esta interacción entre clientes y servidores ayuda a las personas a ver y transferir archivos a través de la web. Algunas empresas pueden usar software de protocolo de transferencia de archivos para ayudar en el proceso.
Cómo funciona HTTP
HTTP es un protocolo utilizado para comunicar entre dispositivos servidor y cliente al tratar con sitios web o aplicaciones web. Cómo funciona se describe a continuación.
- Intercambio de recursos a través de Internet entre dispositivos cliente y servidores. El dispositivo cliente comparte una solicitud con el servidor para enviar recursos para cargar archivos de páginas web. El servidor responde compartiendo recursos. Todas las solicitudes/respuestas comparten subdocumentos que contienen datos mantenidos en el navegador web del cliente para mostrar la página web.
- Un navegador web es un cliente que envía la solicitud a un servidor. Un servidor web también contiene un demonio HTTP, un programa que se ejecuta como un proceso en segundo plano. Este programa espera solicitudes HTTP y las maneja cuando llegan.
- Los tres tipos principales de mensajes HTTP son GET, POST y HEAD. En el primer tipo, los mensajes enviados al servidor contienen solo una URL. El servidor procesa la parte de datos opcional de la URL y envía el resultado al navegador. En el segundo tipo, los mensajes colocan parámetros de datos opcionales en el cuerpo del mensaje de solicitud en lugar de agregarlos al final de la URL. El tercer tipo es similar a las solicitudes GET; el servidor envía de vuelta solo la información del encabezado en lugar de toda la URL.
- El navegador inicia una conexión de protocolo de control de transmisión (TCP) al servidor para iniciar la comunicación con un servidor HTTP. Por defecto, se utiliza el puerto 80 del servidor para sesiones de navegación web.
- Una vez que se establece una sesión y el usuario visita la página web, se desencadena el envío y recepción de mensajes HTTP.
- Dado que HTTP es un sistema sin estado, la conexión HTTP se cierra una vez que la solicitud se completa, a diferencia de los protocolos de transferencia de archivos como FTP. Esto significa que la conexión se cierra una vez que el navegador web envía una solicitud y el servidor responde a ella.
Tipos de métodos de solicitud HTTP
Los métodos de solicitud más comúnmente utilizados se mencionan a continuación.
- GET lee y recupera datos de un servidor. El código de estado HTTP se convierte en 200 OK cuando los datos recopilados del servidor son precisos.
- POST transmite datos al servidor. En caso de creación exitosa, produce un código de estado de 201.
- PUT altera los datos del servidor. Reemplaza todo el contenido de una posición específica con datos del cuerpo de la carga útil. Genera uno si no hay recursos que coincidan con la solicitud.
- PATCH funciona de manera similar a una solicitud PUT, pero altera solo una parte de los datos.
- DELETE elimina datos de una posición particular en el servidor.
Componentes de una solicitud HTTP
Una solicitud HTTP comprende cinco componentes clave.
- Métodos HTTP contienen un conjunto de métodos de solicitud que realizan acciones dedicadas, incluyendo GET, HEAD, POST, PUT, DELETE, CONNECT, OPTIONS y TRACE. Las acciones pueden expandirse si es necesario.
- Identificador Uniforme de Recursos (URI) es una secuencia de caracteres única que identifica el recurso lógico o físico utilizado por una tecnología web.
- HTTP tiene cuatro versiones: HTTP v0.9, HTTP v1.0, HTTP v1.1 y HTTP v2.0. Mientras que HTTP v1.1 es comúnmente utilizado, se dice que HTTP v2.0 es el futuro de las versiones HTTP.
- Encabezado de solicitud contiene más información sobre el contexto de la solicitud o el cliente que solicita el recurso. Por ejemplo: Accept-*, Accept-Encoding.
- El comando de carga útil ayuda a los usuarios a recuperar contenido, consultar el tamaño del contenido o reemplazar cualquier contenido. Por ejemplo: HTTP_REQUEST_DATA y HTTP_RESPONSE_DATA.
Códigos de estado de respuesta HTTP
Los códigos de estado de respuesta HTTP indican si una solicitud particular se ha completado. Las respuestas generalmente se categorizan en clases; existen varios códigos de estado en cada categoría. Cada código representa una acción particular.
- Respuestas informativas incluyen 100 Continue, 101 Switching Protocols, 102 Processing y 103 Early Hints.
- Códigos de respuesta exitosa son 200 OK, 201 Created, 202 Accepted, 203 Non-Authoritative Information, 204 No Content, 205 Reset Content, 206 Partial Content, 207 Multi-Status, 208 Already Reported, 226 IM y Used.
- Mensajes de redirección son 300 Multiple Choices, 301 Moved Permanently, 302 Found, 303 See Other, 304 Not Modified, 305 Use Proxy, 306 Unused, 307 Temporary Redirect y 308 Permanent Direct.
- Respuestas de error del cliente incluyen 400 Bad Request, 401 Unauthorized, 402 Payment Required, 403 Forbidden, 404 Not Found, 405 Method Not Allowed, 406 Not Acceptable, 407 Proxy Authentication Required, 408 Request Timeout, 409 Conflict, 410 Gone y varios otros.
- Respuestas de error del servidor incluyen 500 Internal Server Error, 501 Not Implemented, 502 Bad Gateway, 503 Service Unavailable, 504 Gateway Timeout, 505 HTTP Version Not Supported, etc.
Proxies HTTP
A continuación se presentan algunos detalles notables sobre los proxies HTTP.
- Los proxies HTTP o servidores proxy son servidores de capa de aplicación, computadoras y otras máquinas que actúan como intermediarios entre cliente y servidor.
- Cuando se envía una solicitud web a un sitio web utilizando un proxy, va al servidor proxy como texto plano. El servidor proxy analiza y envía una nueva propuesta al sitio web, cambiando la dirección IP del usuario. Una vez que el sitio web recibe la solicitud, responde al servidor proxy.
- Existen tres tipos de proxies basados en el anonimato. Son Proxy Transparente, Proxy Anónimo y Proxy Elite/Alto Anónimo.
HTTP vs. HTTPS
HTTP y HTTPS difieren en cuanto a seguridad, rendimiento y beneficios de optimización para motores de búsqueda.
HTTP permite la comunicación entre sistemas transfiriendo información y datos a través de una red. Mientras que Protocolo de Transferencia de Hipertexto Seguro (HTTPS) es similar a HTTP, este protocolo asegura la comunicación segura entre servidores web y navegadores al enviar datos. HTTPS utiliza un protocolo de seguridad digital con claves criptográficas para encriptación y validación.
HTTP no tiene encriptación. Esto significa que la falsificación de mensajes, el robo de datos y la interceptación son más probables de ocurrir que con HTTPS, que está asegurado por una capa de sockets seguros (SSL). Datos como el ID de usuario y la contraseña están encriptados. Mientras que el protocolo HTTP funciona en la capa de aplicación, el protocolo HTTPS funciona en la capa de transporte.
El uso de HTTP y HTTPS varía dependiendo del tipo de sitio o datos que los usuarios puedan ejecutar. Sin embargo, también es cierto que HTTPS es el protocolo estándar para la mayoría de los sitios web hoy en día. Pasar de HTTP a HTTPS implica obtener e instalar un certificado SSL para el sitio web.
Aprende más sobre conmutación de etiquetas multiprotocolo (MPLS) para entender el mecanismo de enrutamiento de tráfico utilizado en redes de telecomunicaciones.

Sagar Joshi
Sagar Joshi is a former content marketing specialist at G2 in India. He is an engineer with a keen interest in data analytics and cybersecurity. He writes about topics related to them. You can find him reading books, learning a new language, or playing pool in his free time.