418 "ฉันคือกาน้ำชา" เป็นรหัสตอบกลับ HTTP จริงหรือ
มีการอ้างอิงถึงสิ่งนี้มากมายบนอินเทอร์เน็ตรวมถึงรายการรหัสตอบกลับ แต่ฉันคิดไม่ออกว่ามันเป็นเรื่องตลกแปลก ๆ หรือไม่
418 "ฉันคือกาน้ำชา" เป็นรหัสตอบกลับ HTTP จริงหรือ
มีการอ้างอิงถึงสิ่งนี้มากมายบนอินเทอร์เน็ตรวมถึงรายการรหัสตอบกลับ แต่ฉันคิดไม่ออกว่ามันเป็นเรื่องตลกแปลก ๆ หรือไม่
คำตอบ:
ฉันใช้รหัสนี้ ฉันมีคำขอพร็อกซีย้อนกลับ nginx ไปยังเซิร์ฟเวอร์ HTTP สองเซิร์ฟเวอร์ที่แยกกัน หนึ่งจัดการคำร้องขอสำหรับผู้ใช้ที่ไม่ได้รับการพิสูจน์ตัวตนและส่วนที่สองจัดการคำร้องขอสำหรับผู้ใช้ที่พิสูจน์ตัวตน ปัญหาในกรณีนี้คือเซิร์ฟเวอร์แรกเป็นเซิร์ฟเวอร์ที่กำหนดว่าผู้ใช้ได้รับการพิสูจน์ตัวตนหรือไม่ โปรดอย่าถามว่าทำไม
418 I'm a teapot
ดังนั้นถ้าเซิร์ฟเวอร์แรกกำหนดผู้ใช้จะได้รับรองความถูกต้องมันตอบสนอง จากนั้น NGINX จะเปลี่ยนเส้นทางการรับส่งข้อมูลภายในไปยังเซิร์ฟเวอร์ที่สอง เท่าที่เกี่ยวข้องกับเบราว์เซอร์มันเป็นคำขอเดียว
นี่คือเจตนารมณ์ของรหัส HTCPCP 418เพราะถ้าคุณพยายามเป่าด้วยกาน้ำชาคำตอบที่เหมาะสมคือ "ฉันไม่ใช่คนที่จัดการคำขอนั้นได้ แต่อาจมีคนอื่น" .. อีกอย่าง "ผมกาน้ำชาหาเครื่องชงกาแฟ" (เซิร์ฟเวอร์ที่สองเป็นเครื่องชงกาแฟ)
ท้ายที่สุดแล้วแม้ว่า 418 ไม่ได้กำหนดไว้อย่างชัดเจนในRFC 7231แต่ก็ยังคงถูกปกคลุมด้วยร่มของ4xx (Client Error)
.
6. รหัสสถานะการตอบสนอง
- 4xx (Client Error): คำร้องขอมีไวยากรณ์ที่ไม่ถูกต้องหรือไม่สามารถดำเนินการได้
6.5. ข้อผิดพลาดไคลเอ็นต์ 4xx
- คลาส 4xx (Client Error) ของรหัสสถานะบ่งชี้ว่าไคลเอ็นต์ดูเหมือนจะทำผิดพลาด ยกเว้นเมื่อตอบสนองต่อคำร้องขอ HEAD เซิร์ฟเวอร์ควรส่งการเป็นตัวแทนที่มีคำอธิบายของสถานการณ์ข้อผิดพลาดและไม่ว่าจะเป็นเงื่อนไขชั่วคราวหรือถาวร รหัสสถานะเหล่านี้ใช้ได้กับวิธีการร้องขอใด ๆ ตัวแทนผู้ใช้ควรแสดงการเป็นตัวแทนที่รวมไว้ให้กับผู้ใช้
http
ใน Python 3.9
รหัสตอบกลับ HTTP 418 เดิมกำหนดไว้ในโปรโตคอลRFC 2324 ("Hyper Text Coffee Pot Control Protocol (HTCPCP / 1.0)") และRFC 7168 ("The Hyper Text Coffee Pot Control Protocol for Tea Efflux Appliances (HTCPCP-TEA)") โปรโตคอล
ต่อ Wikipedia: รายการรหัสสถานะ HTTP: # 418
รหัสนี้ถูกกำหนดขึ้นในปี 1998 เป็นหนึ่งในIETF ดั้งเดิมFools เมษายนตลกในRFC 2324 , Hyper Text หม้อกาแฟ Control Protocolและไม่คาดว่าจะถูกนำมาใช้โดยเซิร์ฟเวอร์ HTTP ที่เกิดขึ้นจริง RFC ระบุรหัสนี้ควรส่งคืนโดยกาน้ำชาที่ร้องขอเพื่อชงกาแฟสถานะ HTTP นี้จะใช้เป็นไข่อีสเตอร์ในบางเว็บไซต์รวมถึง Google.com
ใช่มันเป็นรหัส "ของจริง" เนื่องจากได้รับการเผยแพร่เป็น RFC อย่างเป็นทางการโดย Internet Engineering Task Force แต่ RFC นั้นได้รับการเผยแพร่เมื่อวันที่ 1 เมษายนและมีความหมายว่าเป็นเรื่องตลกของ April Fools (พร้อมกับ Hyper Text Coffee Pot Control ที่เหลือ Protocol) ไม่ใช่สำหรับการนำไปใช้อย่างถูกต้องตามกฎหมาย นั่นเป็นเหตุผลที่เว็บไซต์ส่วนใหญ่ใช้เป็นไข่อีสเตอร์ แต่อย่างอื่นก็ควรหลีกเลี่ยง ตามที่ระบุไว้ในความคิดเห็นนี้มักจะมีสถานะที่เหมาะสมกว่าเช่น 400 (คำขอไม่ถูกต้อง) ทั้งหมดที่กล่าวมาต้องขอบคุณชุมชนไอทีตอนนี้มันเป็นรหัสที่สงวนไว้ดังนั้นอย่าคาดหวังว่ามันจะไปได้ทุกที่ทุกเวลาในเร็ว ๆ นี้
โดยเฉพาะอย่างยิ่งตามที่ Larry Masinter (ผู้เขียน RFC อ้างว่าโดย Wikipedia) ส่วนขยาย HTTP ที่เป็นปัญหานั้นตอบสนองวัตถุประสงค์ (เชิงเสียดสี): "มันระบุหลายวิธีที่ HTTP ถูกขยายออกไปอย่างไม่เหมาะสม"
ฉันคิดว่ามันปลอดภัยกว่าที่จะถือว่า 418 เป็นรหัสสงวนที่ครั้งหนึ่งเคยมีความหมายทางการครึ่งหนึ่ง แต่ตอนนี้ "ไม่ได้มอบหมาย" อย่างเป็นทางการ
ฉันคิดว่าในอดีตมีบางอย่างที่คิดเกี่ยวกับรหัสเหล่านี้แตกต่างจากที่เป็นอยู่ในตอนนี้ วันนี้ฟังดูไร้ความหมายและตลกดี อาจจะไม่ใช่?
กล่าวอีกนัยหนึ่งฉันจะหลีกเลี่ยงการใช้รหัสนี้