Mit jelent a 418-as HTTP hibaüzenet?

img

A 418-as hibakód 1998-ban született meg. A 4xx válaszkódok legtöbbször valamilyen hibát jeleznek, a legismertebb talán a 404-es, avagy a "Not found" hibakód, melyet akkor kapunk, ha a szerveren a kért tartalom nem található. De mi is az a 418?

Szóval a 4xx hibakódok valamilyen hibára, hiányzó fájlra vagy egyéb - általában - nem programozó által okozott hibára utalnak. 1998-ban megszületett a 418-as hiba, vagyis az "I'm a teapot".

A hibakódot 1998-ban fogalmazták meg, mikor április 1-én az Iternet Society egy új hálózati protokoll jegyzetét töltötte fel az Internet Engineering Task Force visszajelzéskérő (Request for Comments - RFC) rendszerébe RFC 2324 azonosítóval. A jegyzetben a HTCPCP - Hyper Text Coffee Pot Control Protocol, azaz az internetre csatlakoztatott teáskannák vezérlésére, monitorozására és diagnosztizálására használható HTTP protokoll leírása szerepelt.

A több különböző hiba- és visszatérési kód között szerepelt a fent is említett 418-as:

418 I'm a teapot

Ezzel a hibakóddal akkor találkozott volna a felhasználó, ha a kívánt eszközzel kávét szeretett volna főzni, de valójában egy teáskannával kommunikál, mely kávéfőzésre alkalmatlan.

A dolog szépsége, hogy 16 évvel később, 2014-ben egy újabb jegyzet került fel, mely kibővítette a 2324-et. Ez az RFC 7168 alatt érhető el, melyben ugyanúgy megtalálható a 418-as hibakód, ez lett a HTCPCP-TEA, vagyis a Hyper Text Coffee Pot Control Protocol for Tea Efflux Appliencies.

A HTCPCP-TEA az eredeti HTCPCP-re épül, csak kibővíti pár új funkcióval, és néhány helyen egyszerűsíti azt, hogy teljesen kezelhetőek legyenek a teáskannák.

Azért érdemes végig olvasni az RFC-ket, mert nagyon jókat lehet rajta derülni.

Néhány példa:

7. Security Considerations

Anyone who gets in between me and my morning coffee should be insecure.

5.2 Crossing firewalls

In most organizations HTTP traffic crosses firewalls fairly easily. Modern coffee pots do not use fire.

A protokollról

A HTCPCP egy HTTP bővítmény lenne, mely egy új URI sémán a coffee-n (mivel a kávé nemzetközi ital, így a sémát 29 nyelven tették elérhetővé) kommunikálna, kibővítve az elérhető HTTP metódusokat:

BREW: a HTCPCP szervert kávéfőzésre utasítja, mellyel egy új fejlécmező is küldhető, a Accept-Additions. Ezzel határozhatjuk meg, hogy mit szeretnénk még a kávénkba. Pl: tejszín, whisky, tej, extra cukor

GET: "Visszatér" a kávéval a szerverről.

PROPFIND: metaadokkal tér vissza a kávéról

WHEN: ez a say when angol kifejezésre utal, megmondhatod a szervernek, hogy mikor hagyja abba a tej adagolását a kávéba, ha elérhető a funkció.

2017 augusztus 5-én Mark Nottingham, az IETF (Internet Engineering Task Force) vezetője, megkérte a Node.js fejlesztőit, hogy távolítsák el a 418-as hibakód támogatását a forráskódjukból. Másnap megkereste ugyanezzel a kéréssel a Go programnyelv, a Python Requests és az ASP.NET HttpAbstractions könytárak fejlesztőit is.

Erre válaszul született meg a save418.com, mely hirtelen nagy publicitást nyert, és melynek hatására a fejlesztők úgy döntöttek, hogy mégsem veszik ki a 418-at a forráskódjukból. A mozgalom hatására Mark úgy döntött, hogy megkezdi a 418-as kód lefoglalását, mely miatt a későbbiekben nem válthatja le másik hibakód a 418-at.