1 poin oleh GN⁺ 2024-10-30 | 1 komentar | Bagikan ke WhatsApp
  • HTTP 418 I'm a teapot adalah kode respons status yang menolak karena server secara permanen adalah teko teh sehingga tidak bisa menyeduh kopi
  • Jika situasinya adalah teko gabungan kopi/teh yang untuk sementara tidak dapat menyediakan kopi, maka yang harus dikembalikan bukan 418 melainkan 503 Service Unavailable
  • Kode ini berasal dari lelucon April Mop Hyper Text Coffee Pot Control Protocol, dan terhubung dengan protokol yang didefinisikan pada 1998 dan 2014
  • Kode ini awalnya adalah kode lelucon dalam RFC 2324, tetapi karena sudah tersebar luas maka secara resmi direservasi dalam RFC 9110
  • Beberapa situs web menggunakan 418 untuk permintaan yang tidak ingin mereka perlakukan seperti kueri otomatis, dan dalam waktu dekat tidak mungkin diberi makna non-lelucon

Situasi yang ditunjukkan oleh HTTP 418

  • Kode respons status 418 I'm a teapot berarti server menolak menyeduh kopi
  • Alasan penolakannya adalah karena server secara permanen merupakan teko teh
  • Jika teko gabungan kopi/teh untuk sementara tidak dapat menyediakan kopi, maka harus mengembalikan 503

Kode yang bermula dari protokol April Mop

  • Kode status ini merujuk ke Hyper Text Coffee Pot Control Protocol
  • Protokol tersebut didefinisikan sebagai lelucon April Mop pada 1998 dan 2014
  • 418 awalnya adalah kode yang didefinisikan sebagai lelucon April Mop dalam RFC 2324

Alasan direservasi dalam RFC 9110

  • Kode status 418 telah tersebar luas sebagai lelucon, sehingga secara resmi direservasi dalam RFC 9110
  • Karena reservasi ini, dalam waktu dekat 418 tidak bisa diberi makna non-lelucon

Cara penggunaan di dunia nyata

  • Beberapa situs web menggunakan respons 418 untuk permintaan yang tidak ingin mereka tangani
  • Contoh yang mewakili adalah permintaan seperti kueri otomatis

Spesifikasi terkait dan bahan referensi

1 komentar

 
GN⁺ 2024-10-30
Komentar Hacker News
  • Kalau sedang senggang, menarik juga membaca diskusi saat mnot mencoba menghapus kode status 418 dari berbagai bahasa dan implementasi karena dianggap tidak akurat secara teknis
    https://github.com/nodejs/node/issues/14644
    https://github.com/golang/go/issues/21326
    Pada akhirnya ada juga yang sampai membuat situs http://save418.com/

    • Setiap melihat pembahasan 418, saya teringat perdebatan di tempat kerja lama tentang apakah perlu memasukkan emoji ke aplikasi
      Misalnya menambahkan emoji roket saat pekerjaan berhasil, dan saya menentangnya. Begitu hal seperti ini mulai dimasukkan, tiap orang akan punya selera masing-masing, lalu muncul terus diskusi soal di bagian mana perlu ditambah dan di mana perlu dihapus, bahkan ikut terbawa saat membahas topik yang sama sekali berbeda
      Terutama kalau tidak melihat lewat pelacakan perilaku pengguna apakah metrik benar-benar membaik, saya menganggap kenaikan biaya komunikasi sebagai kerugian besar. Ini bukan soal profesionalisme; subjektivitas seperti ada yang suka, ada yang tidak suka, dan ada yang tidak menyadarinya sering menciptakan gesekan kecil
  • Saya membalas permintaan bot yang tidak sah dengan 418. Lucu, dan memfilter log jadi lebih mudah
    Contoh konfigurasi Nginx seperti berikut

    Nothing to hack around here, I’m just a teapot:

    location ~* .(?:php|aspx?|jsp|dll|sql|bak)$ {
    return 418;
    }
    error_page 418 /418.html;
    Contoh: https://FreeSolitaire.win/wp-login.php
    Sebagai catatan, /wp-login.php adalah URL login WordPress, dan bot yang mencari instalasi WordPress rentan sering memintanya secara membabi buta

  • RFC asli yang ditautkan juga enak dibaca: https://www.rfc-editor.org/rfc/rfc2324

    • Saya suka dokumen RFC seperti ini. Sekarang saya bekerja dengan dokumen CCSDS, dan dibandingkan dengan RFC, kondisinya benar-benar kacau
      Saat membaca dokumen tentang cara kerja TCP atau TLS, terasa ditulis oleh ahli yang punya pengalaman dan visi, sedangkan dokumen CCSDS terlihat seperti ditulis oleh birokrat yang seumur hidup belum pernah menulis satu baris kode pun
  • Ini adalah lelucon absurd ala nerd dari masa sebelum “sir, this is a wendy's” meledak sebagai meme Facebook pada era 2010-an

    • Lelucon semacam itu banyak sekali, dan ada juga “the game” yang berkat xkcd membuat semua orang terbebaskan
  • Saya selalu teringat bagian keren yang dulu saya temukan saat membaca RFC HTTP/2, entah untuk alasan apa
    Sebelum “429 Too Many Requests” distandardisasi, Twitter API mengembalikan kode status non-standar 420 dan frasa “Enhance Your Calm” saat pembatasan laju permintaan. Mereka berhenti karena alasan yang bisa dimengerti, tetapi frasa itu sendiri diam-diam masuk ke HTTP/2
    https://datatracker.ietf.org/doc/html/rfc7540#section-7
    Jika melihat entri 0xb, frasa untuk koneksi yang ditutup karena beban berlebihan benar-benar ENHANCE_YOUR_CALM. Saya tertawa setiap kali melihatnya

  • Setiap kali menemukan kode error ini di layanan nyata, rasanya sangat menjengkelkan
    Seseorang ingin terlihat jenaka lalu mengembalikan ini alih-alih kode status yang benar seperti 429 atau 503, dan akibatnya banyak parser kode status HTTP rusak
    Tidak jenaka, tidak lucu, dan sebenarnya membosankan. Saya tahu saya orang yang tidak seru, tetapi ada pekerjaan yang harus dilakukan

    • Jika parser tidak bisa menangani kode error yang ada di dalam spesifikasi, itu adalah masalah parser
    • Ada anekdot edukatif yang kebenarannya agak tidak pasti, yang membuat kita bertanya-tanya apa lagi yang mungkin terlewat jika implementasi HTTP melewatkan 418
      Konon Van Halen menulis dalam kontrak pertunjukan mereka agar M&M disediakan di backstage, tetapi semua yang berwarna cokelat harus disingkirkan
      Vokalis David Lee Roth menjelaskan dalam autobiografinya ‘Crazy From the Heat’ bahwa ini bukan tuntutan kekanak-kanakan, melainkan tes cerdas untuk segera menilai apakah venue aman
      Jika venue menyajikan M&M cokelat, itu berarti mereka tidak membaca kontrak dengan benar, dan mungkin juga melakukan kesalahan pada bagian yang lebih berbahaya seperti pasokan listrik atau beban panggung
      https://www.metaltalk.net/chris-dale-myth-busting-the-van-ha...
  • Dulu Sonatype Nexus pernah mengembalikan 418 saat upload artefak, dan itu sama sekali tidak mengesankan

    • Kalau humornya dikesampingkan, saya penasaran kenapa justru memilih 418. Kadang terasa seolah ada error yang hilang dari kode HTTP, sehingga developer membuat sendiri atau memakai ulang kode seperti 418 yang tampak berisiko konflik rendah
      Penyalahgunaan kode status HTTP selalu mengejutkan setiap kali saya melihatnya. Contoh favorit saya adalah layanan milik salah satu pelanggan yang mengembalikan “200 OK”, lalu hanya menaruh teks “500” di body respons
      Ketika kami meminta agar jika ada error API mereka mengembalikan error 500 alih-alih 200, mereka hanya mengubah angka 200 di dalam respons, bukan di header. “200 Created” juga cukup kuat sebagai contoh kurangnya pemahaman developer atau batasan framework yang aneh
    • Aneh juga karena itu muncul dari Serious Enterprise™ Solution® seperti itu
  • Kami menggunakan kode respons 418 di layanan autentikasi
    Dipakai untuk membedakan apakah token tidak valid karena kedaluwarsa, atau karena alasan lain. Jika 418, kami menganggap access token boleh diperbarui otomatis. Cukup tidak berbahaya, dan sama sekali bukan langkah keamanan

  • Diskusi terkait
    2020, 153 poin · 118 komentar: https://news.ycombinator.com/item?id=24206899
    2021, 193 poin · 108 komentar: https://news.ycombinator.com/item?id=28541327
    2023, 206 poin · 189 komentar: https://news.ycombinator.com/item?id=36090344

  • Dalam thread seperti ini biasanya ada yang menautkan iiNet coffee cam. Ini dia
    https://coffeecam.iinet.net.au/coffee/history/

    • iiNet mungkin tempat kerja terbaik yang pernah saya jalani, tempat saya paling banyak belajar, dan yang paling menyenangkan
      coffeecam juga lucu, dan acb, yang terutama mengurus coffeecam, juga menjual camilan Amerika di sekitar sana. Setidaknya begitu saat saya bekerja di Hay Street