Apakah 418 "I'm a teapot" benar - benar merupakan kode respons HTTP?
Ada berbagai referensi tentang ini di internet, termasuk dalam daftar kode respon, tapi saya tidak tahu apakah itu lelucon yang aneh.
Apakah 418 "I'm a teapot" benar - benar merupakan kode respons HTTP?
Ada berbagai referensi tentang ini di internet, termasuk dalam daftar kode respon, tapi saya tidak tahu apakah itu lelucon yang aneh.
Jawaban:
Saya menggunakan kode ini. Saya memiliki permintaan nginx reverse-proxying ke dua server HTTP terpisah. Satu menangani permintaan untuk pengguna yang tidak diautentikasi, dan yang kedua menangani permintaan untuk pengguna yang diautentikasi. Masalah dalam kasus khusus ini, adalah server pertama yang menentukan apakah pengguna diotentikasi. Tolong jangan tanya kenapa.
Jadi, jika server pertama menentukan pengguna diautentikasi, server akan merespons 418 I'm a teapot
. NGINX kemudian merutekan ulang lalu lintas secara internal ke server kedua. Sejauh menyangkut browser, itu adalah permintaan tunggal.
Ini adalah semangat kode HTCPCP 418 , karena jika Anda mencoba BREW dengan teko, tanggapan yang sesuai adalah "Saya bukan jenis orang yang dapat menangani permintaan itu, tetapi mungkin ada yang lain." .. Dengan kata lain, "Saya poci teh. Temukan pembuat kopi." (server kedua adalah pembuat kopi).
Pada akhirnya, sementara 418 tidak secara eksplisit didefinisikan dalam RFC 7231 , itu masih dilindungi oleh payung 4xx (Client Error)
.
6. Kode Status Respon
- 4xx (Kesalahan Klien): Permintaan berisi sintaks yang buruk atau tidak dapat dipenuhi
6.5. Kesalahan Klien 4xx
- Kelas 4xx (Kesalahan Klien) dari kode status menunjukkan bahwa klien tampaknya telah melakukan kesalahan. Kecuali saat menanggapi permintaan HEAD, server HARUS mengirimkan representasi yang berisi penjelasan tentang situasi kesalahan, dan apakah itu kondisi sementara atau permanen. Kode status ini berlaku untuk metode permintaan apa pun. Agen pengguna HARUS menampilkan representasi apa pun yang disertakan kepada pengguna.
http
di Python 3.9.
Kode tanggapan HTTP 418 awalnya ditentukan di RFC 2324 ("Hyper Text Coffee Pot Control Protocol (HTCPCP / 1.0)") dan RFC 7168 ("The Hyper Text Coffee Pot Control Protocol for Tea Efflux Appliances (HTCPCP-TEA)") protokol.
Per Wikipedia: Daftar kode status HTTP: # 418
Kode ini didefinisikan pada tahun 1998 sebagai salah satu lelucon tradisional IETF April Mop , di RFC 2324 , Hyper Text Coffee Pot Control Protocol , dan tidak diharapkan untuk diterapkan oleh server HTTP yang sebenarnya . RFC menetapkan kode ini harus dikembalikan oleh teko yang diminta untuk menyeduh kopi. Status HTTP ini digunakan sebagai telur Paskah di beberapa situs web, termasuk Google.com .
Ya, itu adalah kode "nyata" yang sebenarnya diterbitkan sebagai RFC resmi oleh Internet Engineering Task Force, tetapi RFC diterbitkan pada tanggal 1 April dan dimaksudkan sebagai lelucon April bodoh (bersama dengan Hyper Text Coffee Pot Control lainnya Protokol), bukan untuk implementasi yang sah. Itulah mengapa sebagian besar situs menggunakannya sebagai telur Paskah, tetapi sebaliknya menghindarinya. Seperti dicatat oleh komentar ini , seringkali ada status yang lebih sesuai seperti 400 (Permintaan Buruk). Semua yang dikatakan, berkat komunitas TI, sekarang kode itu sudah dipesan, jadi jangan berharap itu akan pergi ke mana pun dalam waktu dekat.
Khususnya, menurut Larry Masinter (penulis RFC yang diklaim oleh Wikipedia), ekstensi HTTP yang dipermasalahkan sebenarnya melayani tujuan (satir): "ia mengidentifikasi banyak cara di mana HTTP telah diperpanjang secara tidak tepat."
Saya pikir lebih aman untuk memperlakukan 418 sebagai kode cadangan yang dulu memiliki arti setengah resmi tetapi sekarang secara resmi "tidak digunakan".
Saya berasumsi, secara historis ada sesuatu yang dipikirkan secara berbeda tentang kode-kode ini daripada sekarang. Ini terdengar tidak berarti dan lucu hari ini; mungkin tidak?
Dengan kata lain, saya akan menghindari penggunaan kode ini.