418 "Я чайник" действительно код ответа HTTP?
В Интернете есть различные ссылки на это, в том числе в списках кодов ответов, но я не могу понять, странная ли это шутка.
Ответы:
Я использую этот код. У меня есть запросы обратного проксирования nginx к двум отдельным HTTP-серверам. Один обрабатывает запросы неаутентифицированных пользователей, а второй обрабатывает запросы аутентифицированных пользователей. Проблема в данном конкретном случае заключается в том, что первый сервер определяет, аутентифицирован ли пользователь. Пожалуйста, не спрашивайте почему.
Итак, если первый сервер определяет, что пользователь аутентифицирован, он отвечает 418 I'm a teapot
. Затем NGINX перенаправляет внутренний трафик на второй сервер. Что касается браузера, то это был единичный запрос.
Это в духе кода HTCPCP 418 , потому что, если вы попытаетесь BREW с помощью чайника, соответствующий ответ будет: «Я не из тех, кто может обработать этот запрос, но могут быть и другие». .. Другими словами, «Я чайник. Найди кофеварку». (второй сервер - кофеварка).
В конечном итоге, хотя 418 явно не определен в RFC 7231 , он по-прежнему охвачен4xx (Client Error)
.
6. Коды состояния ответа
- 4xx (ошибка клиента): запрос содержит неверный синтаксис или не может быть выполнен
6.5. Ошибка клиента 4xx
- Класс кода состояния 4xx (ошибка клиента) указывает на то, что клиент совершил ошибку. За исключением ответа на запрос HEAD, серверу СЛЕДУЕТ послать представление, содержащее объяснение ситуации с ошибкой и того, является ли это временным или постоянным состоянием. Эти коды состояния применимы к любому методу запроса. Пользовательские агенты ДОЛЖНЫ отображать любое включенное представление пользователю.
http
в Python 3.9.
Код ответа HTTP 418 был первоначально определен в протоколах RFC 2324 («Протокол управления гипертекстовым кофейником (HTCPCP / 1.0)») и RFC 7168 («Протокол управления гипертекстовым кофейником для устройств для отливания чая (HTCPCP-TEA)»).
Согласно Википедии: Список кодов состояния HTTP: # 418
Этот код был определен в 1998 году как одна из традиционных шуток IETF первоапрельских шуток в RFC 2324 , Hyper Text Coffee Pot Control Protocol , и не ожидается, что он будет реализован на реальных HTTP-серверах . RFC указывает, что этот код должен возвращаться чайниками, которых просят заварить кофе. Этот статус HTTP используется в качестве пасхального яйца на некоторых веб-сайтах, включая Google.com .
Да, это «настоящий» код в том смысле, что он был фактически опубликован как официальный RFC инженерной группой Интернета, но этот RFC был опубликован 1 апреля и задуман как первоапрельская шутка (вместе с остальной частью Hyper Text Coffee Pot Control Протокол), а не для законной реализации. Вот почему большинство сайтов используют его как пасхальное яйцо, но в остальном избегают. Как отмечено в этом комментарии , часто бывают более подходящие статусы, такие как 400 (неверный запрос).
Примечательно, что, по словам Ларри Масинтера (автора RFC, на который ссылается Википедия), рассматриваемое расширение HTTP действительно служит (сатирической) цели: «оно идентифицирует многие способы ненадлежащего расширения HTTP».
Я думаю, что безопаснее рассматривать 418 как зарезервированный код, который когда-то имел полуофициальное значение, но теперь официально «неназначенный».
Я предполагаю, что исторически что-то думали об этих кодах иначе, чем сейчас. Сегодня это звучит бессмысленно и забавно; наверное не было?
Другими словами, я бы не стал использовать этот код.