1. El intercambio HTTP
Al terminar podrás abrir el panel de red del navegador, elegir una transacción y explicar quién la inició, qué pidió el cliente, qué decidió el servidor y qué parte del resultado es observación o inferencia. HTTP define una interfaz uniforme: el cliente expresa una intención mediante una solicitud y el servidor devuelve una o más respuestas, con una única respuesta final.
Piensa en cinco piezas: método, recurso objetivo, campos, contenido opcional y respuesta. La semántica se mantiene entre HTTP/1.1, HTTP/2 y HTTP/3, pero cambia su representación en el transporte. El formato textual que usamos para aprender corresponde a HTTP/1.1. HTTP/2 y HTTP/3 transmiten campos y datos en tramas, por lo que el navegador puede mostrar una reconstrucción legible y no los bytes exactos del cable.
Cliente
Navegador, aplicación o herramienta que construye la solicitud y procesa la respuesta.
Intermediarios
DNS queda fuera de HTTP; CDN, proxy, balanceador y caché sí pueden recibir, transformar o responder el intercambio.
Servidor de origen
Interpreta la intención sobre el recurso, aplica lógica y autorización, y produce la respuesta final.
2. Lee la solicitud de arriba abajo
En HTTP/1.1, la primera línea contiene método, objetivo y versión. Después aparecen los campos de cabecera, una línea vacía y, cuando el método y la operación lo requieren, contenido. La URL ayuda a construir el objetivo, pero no cuenta toda la solicitud.
GET /guias/http-solicitudes-respuestas?modo=practica HTTP/1.1Host: academia.cubix.esAccept: text/htmlAccept-Language: es- Método:
GETpide transferir una representación actual del recurso. - Objetivo: la ruta identifica el recurso y la query aporta parámetros. El fragmento que empieza por
#se procesa en el cliente y no se envía en la solicitud HTTP. - Autoridad:
Hostpermite distinguir el sitio de destino. En HTTP/2 se representa normalmente como:authority. - Preferencias:
AcceptyAccept-Languageayudan a seleccionar una representación, pero no garantizan que el servidor pueda ofrecerla. - Contenido: es opcional y su significado depende del método.
Content-Typedescribe lo que se envía;Acceptdescribe lo que el cliente prefiere recibir.
3. La respuesta combina resultado y representación
La respuesta empieza con un código de estado, continúa con campos y puede terminar con contenido. El código resume el resultado HTTP, mientras que los campos añaden contexto y el cuerpo puede contener el recurso, el resultado de una acción o una explicación del error.
HTTP/1.1 200 OKContent-Type: text/html; charset=utf-8Cache-Control: public, max-age=0, must-revalidate<!doctype html><html lang="es">...</html>200 indica éxito para esa operación, no que el contenido sea correcto para el negocio.Content-Type explica cómo interpretar los bytes. Cache-Control define condiciones de reutilización. Algunas respuestas no llevan contenido por definición: las respuestas a HEAD, los estados 204 y 304, y todas las respuestas informativas 1xx.
4. Método y estado se interpretan juntos
El método comunica intención. GET y HEAD son seguros porque no solicitan cambiar el estado del recurso. PUT y DELETE son idempotentes: repetir una solicitud idéntica debe perseguir el mismo efecto previsto, aunque cada intento pueda generar logs o respuestas distintas.POST pide procesamiento específico del recurso y no es idempotente por definición.
1xx: información
La operación continúa. Puede haber respuestas provisionales antes de la respuesta final.
2xx: éxito
200 suele incluir resultado; 201 indica creación; 204 confirma éxito sin contenido.
3xx: redirección o caché
Inspecciona Location en una redirección. 304 permite reutilizar una representación almacenada.
4xx: la solicitud no puede completarse
400 señala una solicitud inválida, 401 exige autenticación y 403 rechaza la operación.
5xx: el servidor no pudo completarla
500 es un fallo del servidor; 502 y 504 suelen implicar comunicación con un servicio aguas arriba.
5. Captura una transacción en el navegador
Abre las herramientas de desarrollo, entra en Network o Red y recarga esta guía. Selecciona la fila cuyo tipo sea document. Si hay demasiadas entradas, filtra porDoc. No actives Disable cache en la primera captura: interesa observar el comportamiento normal antes de modificarlo.
- En Headers, registra método, URL, protocolo y estado.
- Separa Request Headers de Response Headers. Localiza
Accept,Content-Typey reglas de caché si existen. - Abre Response o Preview y describe qué representación llegó, sin copiar datos sensibles.
- Revisa Timing. Anota la medición, pero no atribuyas una espera al servidor con una sola captura.
- Recarga una segunda vez y compara estado, tamaño transferido, caché y cadena de redirecciones.
Iniciador: documentMétodo y URL: GET https://academia.cubix.es/guias/http-solicitudes-respuestasSolicitud: Accept=...; Cookie=[eliminada si existe]Respuesta: estado=...; Content-Type=...; Cache-Control=...Contenido: tipo y finalidad, sin datos personalesObservación: ...Inferencia pendiente de confirmar: ...6. Verifica el mismo modelo con curl
Este ejercicio fuerza HTTP/1.1 para que la salida se parezca al formato textual estudiado y descarta el cuerpo. No modifica el destino. En Linux y macOS usa curl; en Windows PowerShell invocacurl.exe para evitar ambigüedad con alias de versiones antiguas.
# Linux y macOScurl --http1.1 --verbose --output /dev/null https://example.com/# Windows PowerShellcurl.exe --http1.1 --verbose --output NUL https://example.com/* Connected to example.com> GET / HTTP/1.1> Host: example.com> Accept: */*< HTTP/1.1 200 OK< Content-Type: text/htmlEn la salida verbose, > marca datos enviados, < datos recibidos y *mensajes internos de curl. Esos prefijos no forman parte de HTTP. Si el navegador negocia HTTP/2 o HTTP/3, método, destino, campos y estado conservan su significado aunque la representación sobre el transporte cambie.
7. Diagnostica sin saltar a la causa
404 no significa servidor caído
Observas que el recurso no fue encontrado para ese objetivo. Comprueba ruta, mayúsculas, versión de API y reescrituras.
304 no es una respuesta rota
No trae contenido porque el cliente puede reutilizar su copia. Revisa la solicitud condicional y la entrada de caché.
CORS no equivale a ausencia de respuesta
El navegador puede bloquear el acceso de JavaScript a una respuesta. Revisa consola, Origin, preflight y campos CORS.
Un tiempo no localiza el cuello
DNS, conexión, TLS, proxy, cola, aplicación y transferencia contribuyen. Compara varias mediciones y telemetría del servidor.
Un campo Server no prueba tecnología
Puede omitirse, modificarse o pertenecer a un intermediario. Trátalo como una pista y confirma con evidencia independiente.
- Puedo identificar cliente, intermediarios posibles y servidor de origen
- Distingo URL, método, campos y contenido de la solicitud
- Interpreto el estado junto con el método y los campos de respuesta
- Sé cuándo una respuesta no debe incluir contenido
- Separo una medición observable de una explicación todavía no confirmada
- He saneado cookies, tokens y datos personales antes de guardar o compartir evidencia
Glosario
Método HTTP
Verbo que expresa la intención de una solicitud, como GET, POST, PUT o DELETE.
Cabecera
Campo de metadatos que acompaña a una solicitud o respuesta HTTP.
Código de estado
Número de tres cifras que resume el resultado de procesar una solicitud.
Cuerpo
Contenido opcional transportado por el mensaje, como JSON, HTML o un archivo.
Idempotencia
Propiedad por la que repetir una operación produce el mismo efecto observable que ejecutarla una vez.