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 cuerpo103 Checkpoint – Acepto un troxo, envía más2XX: Peticiones correctas
200 OK – Roger that204 No content – No te voy a enviar cuerpo, sólo cabeceras3XX: Redirecciones
301: Moved Permanently – Ese contenido se ha ido para siempre302: 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 pides401: Unautorized – no puedoe comprobar si tienes permiso402: Payment Required – ideado para micropagos, pero no utlizado403: Forbidden – solicitud correcta pero no tienes permiso para ver esto404: Not Found418: 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 especificar501 Not Implemented – Igual de genérico, pero más elegante502 Bad Gateway – Igual de genérico, pero le echa la culpa a un proxy503 Service Temporarily Unavailable – La web está en mantenimiento o el dueño del hospedaje no ha pagado las facturasA 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:
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»