Podcast: Reproducir en una nueva ventana | Descargar (14.8MB)
En este capítulo hablo de HTTP (HyperText Transfer Protocol), el «lenguage» que utilizan los navegadores para comunicarse con los servidores, y en concreto del curioso mundo de los códigos de estado HTTP y de la cantidad de huevos de pascua que esconden.
Los códigos de estado HTTP se dividen en cinco grupos:
- 1XX: Respuestas informativas (estoy en ello)
- 2XX: Peticiones correctas (todo chachi)
- 3XX: Redirecciones (vete pallá)
- 4XX: Errores del cliente (las has cagado)
- 5XX: Errores de servidor (la he cagado)
1XX: Respuestas informativas
- 100 Continue – Acepto la cabecera, envía el cuerpo
- 103 Checkpoint – Acepto un troxo, envía más
2XX: Peticiones correctas
- 200 OK – Roger that
- 204 No content – No te voy a enviar cuerpo, sólo cabeceras
3XX: Redirecciones
- 301: Moved Permanently – Ese contenido se ha ido para siempre
- 302: Found – Ese contenido ahora mismo está aquí
- 304: Not Modified – El contenido no ha cambiado, puedes usar tu copia en caché
4XX: Errores del cliente
- 400: Bad request – no entiendo lo que me pides
- 401: Unautorized – no puedoe comprobar si tienes permiso
- 402: Payment Required – ideado para micropagos, pero no utlizado
- 403: Forbidden – solicitud correcta pero no tienes permiso para ver esto
- 404: Not Found
- 418: I’m a Teapot – definido en 1998 como una inocentada en el RFC-2324, HTCPCP/1.0 – Hyper Text Coffee Pot Control Protocol (Protocolo de Hipertexto para Control de Cafeteras). No se espera que los servidores web implementen realmente este código de error, pero es posible encontrar sitios que devuelvan este código HTTP (y podcasts que lo usen de título).
- 420: Enhance your calm – Devuelto por el API de Twitter cuando haces peticiones demasiado seguidas. Es una referencia al slang 4:20, utilizado en los años setenta en California para referirse al consumo de cannabis (quedamos a las 4:20)
- 450: Blocked by windows parental controls – Error del control parental de Windows, puestos a inventarse códigos, todo el mundo se apunta.
- 451: Unavailable For Legal Reasons – Lo que pides está bloqueado por motivos legales (censura o violación de copyright), hace referencia a la novela Fahrenheit 451, donde los libros están prohibidos.
5XX – Errores de servidor
- 500 Internal Server Error – Error genérico, sin especificar
- 501 Not Implemented – Igual de genérico, pero más elegante
- 502 Bad Gateway – Igual de genérico, pero le echa la culpa a un proxy
- 503 Service Temporarily Unavailable – La web está en mantenimiento o el dueño del hospedaje no ha pagado las facturas
A la hora de mostrar errores 404, todo el mundo tira la casa por la ventana:
https://www.google.com/search?q=404+error+pages&tbm=isch
Pero para el resto, lo normal es encontrarse un simple mensaje de texto… HTTP Cats al rescate:
https://http.cat/
Una página con mensajes de estado HTTP en forma de memes de gatos. ¡y con API pública!
Para usarlo:
- Imagen suelta:
https://http.cat/404 o https://http.cat/404.jpg - Página de información:
https://http.cat/404/ - Configuración de NGinx
https://gist.github.com/mjmeyer/6cf8d3c1199d028f0921 - Configuración de Apache, sencilla
https://gist.github.com/dave1010/1476499 - Configuración de Apache, completa
https://gist.github.com/munchicken/c606774c0d0b519e4b5b7d2de16a8db2
Si no te gustan los gatos (nadie es perfecto), también tienes una versión con perros:
https://httpstatusdogs.com/
¡Bola extra!
RCF 2549 «IP over Avian Carriers with Quality of Service» (IP sobre portadores aviarios con Calidad de Servicio). Enmienda del documento RFC 1149 «A Standard for the Transmission of IP Datagrams on Avian Carriers» (Estándar para la comunicación de datagramas IP sobre portadores aviarios) añadiendo control de calidad de servicio.
Es decir, como controlar la pérdida de paquetes cuando utilizas palomas mensajeras para enviar datos. Por lo menos tienen el detalle de advertir de que no es un estándar recomendado sino un uso experimental…
Incluye joyas como «Consideraciones sobre patentes: Hay un litigio en curso para decidir qué se definió antes, el portador o el huevo.» o «Las operaciones con portadores agorafóbicos son muy inseguras»