418 "Ben bir çaydanlığım" gerçekten bir HTTP yanıt kodu mu?
İnternette buna yanıt kodları listeleri de dahil olmak üzere çeşitli referanslar var, ancak tuhaf bir şaka olup olmadığını anlayamıyorum.
Yanıtlar:
Bu kodu kullanıyorum. İki ayrı HTTP sunucusuna nginx ters proxy isteklerim var. Biri kimliği doğrulanmamış kullanıcılar için istekleri ele alırken, ikincisi kimliği doğrulanmış kullanıcılar için istekleri ele alır. Bu özel durumda sorun, kullanıcının kimliğinin doğrulanıp doğrulanmadığını belirleyen ilk sunucudur. Lütfen neden diye sorma.
Bu nedenle, ilk sunucu kullanıcının kimliğinin doğrulandığını belirlerse yanıt verir 418 I'm a teapot
. NGINX daha sonra trafiği dahili olarak ikinci sunucuya yeniden yönlendirir. Tarayıcı söz konusu olduğunda, bu tek bir istekti.
Bu, HTCPCP kodu 418'in ruhuna uygundur , çünkü bir çaydanlık ile BREW yapmaya çalışırsanız, uygun yanıt "Ben bu isteği karşılayacak türden bir şey değilim, ancak başkaları da olabilir." .. Başka bir deyişle, "Ben bir çaydanlığım. Bir kahve makinesi bulun." (ikinci sunucu kahve makinesidir).
Nihayetinde 418, RFC 7231'de açıkça tanımlanmasa da, yine de şemsiyesi altında yer alır 4xx (Client Error)
.
6. Yanıt Durum Kodları
- 4xx (İstemci Hatası): İstek hatalı sözdizimi içeriyor veya yerine getirilemiyor
6.5. İstemci Hatası 4xx
- Durum kodunun 4xx (İstemci Hatası) sınıfı, istemcinin hata yaptığını gösterir. Bir HEAD isteğine yanıt verme durumu dışında, sunucu, hata durumunun açıklamasını ve bunun geçici mi yoksa kalıcı bir durum mu olduğunu içeren bir sunum göndermelidir. Bu durum kodları herhangi bir istek yöntemi için geçerlidir. Kullanıcı aracıları, dahil edilen her türlü temsili kullanıcıya göstermelidir.
http
Python 3.9'daki standart kitaplık modülüne eklenir .
HTTP yanıt kodu 418, orijinal olarak RFC 2324 ("Hiper Metin Cezve Kontrol Protokolü (HTCPCP / 1.0)") ve RFC 7168 ("Çay Akıtma Aletleri (HTCPCP-TEA) için Hiper Metin Cezve Kontrol Protokolü") protokollerinde tanımlanmıştır.
Wikipedia Başına: HTTP durum kodlarının listesi: # 418
Bu kod 1998'de geleneksel IETF April Fools şakalarından biri olarak RFC 2324 , Hyper Text Coffee Pot Control Protocol'te tanımlandı ve gerçek HTTP sunucuları tarafından uygulanması beklenmiyor . RFC, bu kodun kahve demlemek için istenen çaydanlıklar tarafından döndürülmesi gerektiğini belirtir. Bu HTTP durumu, Google.com dahil olmak üzere bazı web sitelerinde Paskalya yumurtası olarak kullanılmaktadır .
Evet, aslında İnternet Mühendisliği Görev Gücü tarafından resmi bir RFC olarak yayınlandığı için "gerçek" bir koddur, ancak bu RFC 1 Nisan'da yayınlandı ve 1 Nisan şakası anlamına geliyordu (Hyper Text Coffee Pot Control'ün geri kalanıyla birlikte) Protokol), meşru uygulama için değil. Bu yüzden çoğu site onu bir Paskalya yumurtası olarak kullanıyor, ancak aksi halde kaçının. Bu yorumda belirtildiği gibi , genellikle 400 (Kötü İstek) gibi daha uygun durumlar vardır.
Özellikle, Larry Masinter'e (Wikipedia'nın iddia ettiği bu RFC'nin yazarı) göre, söz konusu HTTP uzantısı aslında (hicivsel) bir amaca hizmet ediyor: "HTTP'nin uygunsuz bir şekilde genişletildiği birçok yolu tanımlar."
Sanırım 418'i bir zamanlar yarı resmi anlamı olan ama şimdi resmi olarak "atanmamış" ayrılmış bir kod olarak ele almanın daha güvenli olduğunu düşünüyorum.
Sanırım, tarihsel olarak bu kodlar hakkında şu anda olduğundan daha farklı bir şey düşünülmüş. Bu bugün anlamsız ve komik geliyor; muhtemelen değil miydi?
Başka bir deyişle, bu kodu kullanmaktan kaçınırdım.