Kodokon kodokon.com

HTTP al descubierto: métodos y códigos de estado

Lee una petición y una respuesta reales, y aprende qué significan de verdad 200, 404 y 500.

8 min · 3 preguntas

Abrir esta lección en Kodokon

HTTP (HyperText Transfer Protocol) es el idioma que hablan entre sí el navegador y el servidor. Buena noticia: no es binario incomprensible, es texto legible. Una petición cabe en unas pocas líneas: un verbo, una dirección y luego unas cabeceras que precisan el contexto (qué idioma prefiero, qué navegador utilizo). La respuesta sigue el mismo formato: un código numérico, cabeceras, una línea en blanco y después el contenido.

BASH
curl -i https://example.com

HTTP/2 200
content-type: text/html; charset=UTF-8
content-length: 1256
cache-control: max-age=86400

<!doctype html>
<html>
...
La opción -i le pide a curl que muestre también las cabeceras de la respuesta, no solo el contenido.

El verbo que encabeza una petición se llama método, y anuncia tu intención. GET simplemente pide leer un recurso: es lo que hace el navegador cada vez que abres una página. POST envía datos al servidor, típicamente cuando validas un formulario de registro. PUT actualiza un elemento existente, y DELETE pide su eliminación. Quédate sobre todo con los dos primeros: representan la abrumadora mayoría del tráfico.

BASH
curl -X POST -d "name=Sarah&age=30" https://httpbin.org/post
Una petición POST: -d aporta los datos enviados, igual que haría un formulario.

Cada respuesta empieza con un código de estado de tres cifras. La primera cifra basta para entender la situación. Los códigos 2xx anuncian un éxito: 200 quiere decir "aquí tienes lo que has pedido". Los 3xx son redirecciones: 301 significa "esta página se ha mudado, ve mejor allí". Los 4xx señalan un error del cliente: 404 (recurso no encontrado), 403 (acceso prohibido), 401 (tienes que identificarte). Los 5xx señalan un fallo del servidor: 500 es el error interno clásico.

BASH
curl -I https://example.com/this-page-does-not-exist

HTTP/2 404
content-type: text/html; charset=UTF-8
La opción -I (i mayúscula) solo pide las cabeceras: perfecto para comprobar un código de estado.

Prueba de conocimientos

Comprueba que has retenido los puntos clave de esta lección.

  1. ¿Qué significa un código de estado 404?
    • El servidor se ha caído
    • El recurso solicitado no se encuentra en esa dirección
    • La petición ha tenido éxito
  2. ¿Qué familia de códigos señala un problema del lado del servidor?
    • Los 2xx
    • Los 3xx
    • Los 4xx
    • Los 5xx
  3. ¿Qué método HTTP usa el navegador para simplemente leer una página?
    • GET
    • POST
    • DELETE