418 I'm a teapot
Penggunaan
Pesan error 418 I’m a teapot dirancang sebagai salah satu lelucon April Mop IETF. RFC-nya menyatakan bahwa setiap teko teh yang diminta menyeduh kopi akan merespons dengan pesan ini. Secara spesifik, body pesan yang dihasilkan digambarkan sebagai pendek dan gempal.
Meskipun kode status ini tidak digunakan di lingkungan produksi, banyak pustaka HTTP mendukungnya. Upaya untuk menghapus kode status ini agar nomornya tersedia untuk penggunaan resmi mendapat penolakan dan melahirkan inisiatif Save 418. Pesan dan kode status tersebut tetap bertahan.
Pencadangan kode status
Spesifikasi HTTP mencadangkan kode status 418 sebagai “(Unused)” untuk menghindari konflik dengan implementasi HTCPCP yang tersebar luas.
Dampak SEO
Mesin pencari seperti Google tidak akan mengindeks URL dengan status respons 418 I’m a teapot. URL yang sebelumnya terindeks akan dihapus dari hasil pencarian.
Contoh
Klien meminta agar kopi diseduh, tetapi teko teh menolaknya.
Permintaan
BREW coffee HTTP/1.1
Host: example.com
Content-Type: message/coffeepot
Content-Length: 5
start
Respons
HTTP/1.1 418 I'm a teapot
Content-Type: text/html
Content-Length: 146
<html>
<head>
<title>Beverage not supported</title>
</head>
<body>
<p>This is a teapot. Coffee is not supported.</p>
</body>
</html>
Memicu respons 418
Respons 418 hanya dikembalikan oleh server yang dikonfigurasi untuk mendukung protokol lelucon HTCPCP atau oleh aplikasi yang secara eksplisit mengembalikan kode ini. Google mengembalikan 418 di google.com/teapot sebagai easter egg. Banyak framework web memungkinkan pengembalian 418 dengan menyetel kode status respons secara langsung. Tidak ada server HTTP standar yang mengembalikan 418 tanpa konfigurasi yang disengaja.
Sejarah 418
Kode status ini bermula pada 1998 sebagai bagian dari spesifikasi April Mop untuk Hyper Text Coffee Pot Control Protocol (HTCPCP). Spesifikasi pendamping yang memperluas HTCPCP untuk teh menyusul pada 2014. Ketika IETF mempertimbangkan untuk menarik kembali kode tersebut bagi penggunaan resmi pada 2017, komunitas developer menolaknya dan meluncurkan gerakan Save 418. IETF pada akhirnya mencadangkan kode itu sebagai “(Unused)” di dalam spesifikasi HTTP utama.
Referensi kode
.NET
StatusCodes.Status418ImATeapot
Rust
http::StatusCode::IM_A_TEAPOT
Go
http.StatusTeapot
Symfony
Response::HTTP_I_AM_A_TEAPOT
Python3.9+
http.HTTPStatus.IM_A_TEAPOT
Angular
@angular/common/http/HttpStatusCode.ImATeapot