5. Error 418: Soy una tetera

16/07/2018 12 min
5. Error 418: Soy una tetera

Escuchar "5. Error 418: Soy una tetera"

Síntesis del Episodio

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»