¿Es 418 "Soy una tetera" realmente un código de respuesta HTTP?
Hay varias referencias a esto en Internet, incluso en listas de códigos de respuesta, pero no puedo entender si es una broma extraña.
Respuestas:
Yo uso este código. Tengo solicitudes de proxy inverso nginx a dos servidores HTTP separados. Uno maneja las solicitudes de usuarios no autenticados y el segundo maneja las solicitudes de usuarios autenticados. El problema en este caso en particular, es que el primer servidor es el que determina si el usuario está autenticado. Por favor, no preguntes por qué.
Entonces, si el primer servidor determina que el usuario está autenticado, responde 418 I'm a teapot
. Luego, NGINX redirige el tráfico internamente al segundo servidor. En lo que respecta al navegador, fue una única solicitud.
Esto está en el espíritu del código HTCPCP 418 , porque si intenta PREPARAR con una tetera, la respuesta adecuada es "No soy el tipo de persona que puede manejar esa solicitud, pero puede haber otras". .. En otras palabras, "Soy una tetera. Encuentra una cafetera". (el segundo servidor es la cafetera).
En última instancia, aunque 418 no se define explícitamente en RFC 7231 , todavía está cubierto por el paraguas de 4xx (Client Error)
.
6. Códigos de estado de respuesta
- 4xx (Error del cliente): la solicitud contiene una sintaxis incorrecta o no se puede cumplir
6.5. Error de cliente 4xx
- La clase de código de estado 4xx (Error del cliente) indica que el cliente parece haberse equivocado. Excepto cuando se responde a una solicitud HEAD, el servidor DEBE enviar una representación que contenga una explicación de la situación del error, y si es una condición temporal o permanente. Estos códigos de estado son aplicables a cualquier método de solicitud. Los agentes de usuario DEBEN mostrar al usuario cualquier representación incluida.
http
en Python 3.9.
El código de respuesta HTTP 418 se definió originalmente en los protocolos RFC 2324 ("Protocolo de control de cafetera Hyper Text (HTCPCP / 1.0)") y RFC 7168 ("Protocolo de control de cafetera Hyper Text para electrodomésticos Tea Efflux (HTCPCP-TEA)").
Según Wikipedia: Lista de códigos de estado HTTP: # 418
Este código se definió en 1998 como una de las bromas tradicionales de IETF April Fools , en RFC 2324 , Protocolo de control de cafetera de Hyper Text , y no se espera que lo implementen los servidores HTTP reales . La RFC especifica que este código debe ser devuelto por las teteras solicitadas para preparar café. Este estado HTTP se utiliza como un huevo de Pascua en algunos sitios web, incluido Google.com .
Sí, es un código "real" en el sentido de que en realidad fue publicado como un RFC oficial por el Grupo de Trabajo de Ingeniería de Internet, pero ese RFC se publicó el 1 de abril y tenía la intención de ser una broma de los inocentes (junto con el resto de Hyper Text Coffee Pot Control Protocolo), no para una implementación legítima. Es por eso que la mayoría de los sitios lo usan como un huevo de Pascua, pero por lo demás lo evitan. Como se indica en este comentario , a menudo hay estados más apropiados como 400 (Solicitud incorrecta).
En particular, según Larry Masinter (el autor de ese RFC supuestamente por Wikipedia), la extensión HTTP en cuestión en realidad tiene un propósito (satírico): "identifica muchas de las formas en las que HTTP se ha extendido de manera inapropiada".
Creo que es más seguro tratar el 418 como un código reservado que alguna vez tuvo un significado medio oficial, pero ahora oficialmente "no asignado".
Supongo que históricamente algo se ha pensado de manera diferente sobre estos códigos de lo que es ahora. Hoy esto suena divertido y sin sentido; probablemente no lo fue?
En otras palabras, evitaría usar este código.