Soy una tetera — HTTP Status 418
“418 Soy una tetera” es un código de error HTTP creado como parte de una broma del día de los inocentes.
Espera, ¿qué?
El código de error HTTP 418 — Soy una tetera hace referencia al Hyper Text Coffee Pot Control Protocol (HTCPCP), protocolo HTTP creado por Internet Engineering Task Force (IETF) como parte de una broma del April Fools’ de 1998. [1]
El HTCPCP es una propuesta (RFC 2324) para hacer café en cafeteras conectadas a internet y a través de llamadas HTTP. Según sus propias palabras:
Increasingly, home and consumer devices are being connected to the Internet. [...] Consumers want remote control of devices such as coffee pots so that they may wake up to freshly brewed coffee, or cause coffee to be prepared at a precise time after the completion of dinner preparations.
La propuesta fue escrita por L. Masinter y en ella se describen métodos, cabeceras y el esquema URI coffee: para las cafeteras conectadas a internet.
Más allá de ser una broma, la documentación es increíblemente completa y puedes leerla entera aquí.
Veamos algunas de sus características:
Métodos HTCPCP
BREW / POST
: Son los encargados de controlar las cafeteras y tienen que incluir un mensaje con un Content-Type “application/coffee-pot-command”.
GET
: Nos devuelve café, nada de información o datos. Habitualmente sin cafeína.
PROPFIND
: Nos devuelve los metadatos del café.
WHEN
: Para indicar cuándo queremos que la cafetera pare de echar leche. Este me ha parecido una joya 🤣
Enough milk? Say WHEN.
Cabeceras
Accept-Additions
: Añade cualquier extra que queramos a nuestro café.
Accept-Additions = "Accept-Additions" ":"
#( addition-range [ accept-params ] )
addition-type = ( "*"
| milk-type
| syrup-type
| sweetener-type
| spice-type
| alcohol-type
) *( ";" parameter )
milk-type = ( "Cream" | "Half-and-half" | "Whole-milk"
| "Part-Skim" | "Skim" | "Non-Dairy" )
syrup-type = ( "Vanilla" | "Almond" | "Raspberry"
| "Chocolate" )
alcohol-type = ( "Whisky" | "Rum" | "Kahlua" | "Aquavit" )
Códigos de respuesta
Llegamos por fin al título de esta entrada de blog. HTCPCP incluye 2 códigos de respuesta:
406 — Not acceptable
Respuesta que recibiremos si la cafetera no puede preparar nuestro café. Debería incluir una lista de los cafés que sí puede preparar.
418 — I’m a teapot
Respuesta que recibiremos si le pedimos café a una tetera. Maravilloso WTF.
Ejemplos en la vida real
Ya que se trata de una broma y solo una propuesta, no he encontrado más ejemplos que el de Google. Haciendo clic en la tetera, te llena la taza. Si lo ves desde el móvil, basta con girarlo para que la tetera se incline.
¿Qué os ha parecido esto?
A mí me ha hecho mucha gracia esta tontería. Si tenéis tiempo, echadle un ojo a la propuesta RFC, porque guarda alguna joya más.
¡Hasta el próximo café! ☕
Referencias y enlaces
- April Fools’ Day (Wikipedia): https://es.wikipedia.org/wiki/D%C3%ADa_de_las_bromas_de_abril
- Internet Engineering Task Force (Wikipedia): https://es.wikipedia.org/wiki/Grupo_de_Trabajo_de_Ingenier%C3%ADa_de_Internet
- Larry Masinter (Wikipedia): https://en.wikipedia.org/wiki/Larry_Masinter
- Error 418 en MDN: https://developer.mozilla.org/es/docs/Web/HTTP/Status/418
- Anexo: Códigos de estado HTTP (Wikipedia): https://es.wikipedia.org/wiki/Anexo:C%C3%B3digos_de_estado_HTTP
- ¿Es 418 soy una tetera un código real de respuesta HTTP? (Stackoverflow): https://stackoverflow.com/questions/52340027/is-418-im-a-teapot-really-an-http-response-code
- Hyper Text Coffee Pot Control Protocol (HTCPCP/1.0) (RFC 2324): https://tools.ietf.org/html/rfc2324
- Página de Google para el error 418: https://www.google.com/teapot