← Volver a HTML

Ejercicio 01 — Preguntas sobre HTTP

1. ¿Sobre qué protocolo binario está montado el protocolo HTTP?

El protocolo HTTP está montado sobre TCP (Transmission Control Protocol), un protocolo de la capa de transporte que garantiza la entrega ordenada y confiable de los datos entre cliente y servidor.

2. ¿Cuáles son los clientes HTTP y los servidores HTTP más utilizados?

Clientes: Navegadores web (Chrome, Firefox, Safari, Edge), herramientas de consola como CURL, y librerías de lenguajes de programación (Python requests, Node.js fetch, etc.).

Servidores: Apache, Nginx, IIS (Microsoft), Node.js (Express).

3. ¿Qué verbos admite un comando en el requerimiento HTTP?

Los principales verbos (métodos) HTTP son: GET (obtener recurso), POST (enviar datos), PUT (reemplazar recurso completo), PATCH (modificar parcialmente), DELETE (eliminar recurso), HEAD (solo cabeceras), OPTIONS (opciones disponibles) y CONNECT (túnel TCP).

4. ¿Qué contenido lleva el body de un requerimiento HTTP?

El body lleva los datos que el cliente envía al servidor. Aparece principalmente en solicitudes POST y PUT. Puede contener formularios HTML (application/x-www-form-urlencoded o multipart/form-data), JSON (application/json), XML, texto plano o archivos binarios. Los requests GET típicamente no llevan body.

5. ¿Qué diferencia existe entre un URL y un URI?

Un URI (Uniform Resource Identifier) es un identificador genérico de cualquier recurso. Un URL (Uniform Resource Locator) es un tipo de URI que además especifica cómo localizar el recurso, incluyendo el protocolo y la ubicación (ej: https://www.ejemplo.com/pagina). Todo URL es un URI, pero no todo URI es un URL.

6. ¿Cómo se almacena información relacionada con las respuestas HTTP?

La información se almacena en caché. El servidor indica mediante headers como Cache-Control, ETag, Last-Modified y Expires cómo y cuánto tiempo debe guardarse la respuesta. El cliente o proxies intermedios guardan copias para evitar solicitudes repetidas al servidor.

7. ¿Qué significa HTTP sobre conexiones preexistentes?

En HTTP/1.1 se introdujo la conexión persistente (keep-alive): en lugar de abrir y cerrar una conexión TCP por cada request, la misma conexión se reutiliza para múltiples solicitudes. Esto reduce la latencia y el overhead del handshaking repetido.

8. ¿Qué significa Virtual hosting?

Es la técnica que permite que un único servidor físico (con una sola IP) aloje múltiples sitios con distintos dominios. El servidor identifica a cuál sitio responder usando el header Host que el cliente envía en cada solicitud HTTP.

9. ¿Qué significa Cache por ETag?

ETag (Entity Tag) es un identificador único que el servidor asigna a una versión específica de un recurso. Cuando el cliente vuelve a pedirlo, envía el ETag en el header If-None-Match. Si el recurso no cambió, el servidor responde con 304 Not Modified sin enviar el cuerpo, ahorrando ancho de banda.

10. ¿Por qué el HTTP se considera STATE LESS?

Porque cada solicitud HTTP es completamente independiente de las anteriores. El servidor no guarda ningún estado ni memoria de interacciones previas. Para mantener estado (sesiones de usuario) se utilizan mecanismos adicionales como cookies, tokens JWT o variables de sesión en servidor.

11. ¿Qué nueva versión de HTTP se está usando para mejorar la velocidad de la WEB?

HTTP/2 y más recientemente HTTP/3. HTTP/2 introduce multiplexación (múltiples requests en paralelo por una sola conexión TCP) y compresión de headers. HTTP/3 reemplaza TCP por QUIC (sobre UDP), eliminando el head-of-line blocking y mejorando la velocidad especialmente en conexiones inestables.

12. ¿Cómo va a mejorar el comportamiento de una aplicación WEB en ambientes ruidosos o de débil conexión?

Principalmente gracias a HTTP/3 y QUIC. En TCP, un paquete perdido bloquea toda la conexión (head-of-line blocking). En QUIC, cada stream es independiente, por lo que la pérdida de un paquete solo afecta ese stream. Además QUIC implementa reconexión más rápida y reduce los handshakes iniciales con 0-RTT, mejorando notablemente la experiencia en redes con alta latencia o pérdida de paquetes.

Imagen — Cronograma de clases de la materia

Cronograma de clases — Programación en Ambientes de Redes

Video — Introducción al protocolo HTTP