Mensagem de erro HTTP 418 I'm a teapot
(developer.mozilla.org)- HTTP 418
I'm a teapoté um código de resposta de status que rejeita a solicitação porque o servidor é permanentemente um bule de chá e não pode preparar café - Se for um bule combinado de café/chá que temporariamente não consegue servir café, deve retornar
503 Service Unavailableem vez de 418 - Esse código surgiu como uma piada de 1º de abril no Hyper Text Coffee Pot Control Protocol e está ligado aos protocolos definidos em 1998 e 2014
- Originalmente era um código de brincadeira da RFC 2324, mas como foi amplamente distribuído, ficou oficialmente reservado na RFC 9110
- Alguns sites usam 418 para requisições que não querem tratar como consultas automatizadas, e no futuro próximo não será possível atribuir a ele um significado não humorístico
O que o HTTP 418 indica
- O código de resposta de status
418 I'm a teapotsignifica que o servidor se recusa a preparar café - O motivo da recusa é que o servidor é permanentemente um bule de chá
- Se um bule combinado de café/chá temporariamente não puder servir café, deve retornar
503
Um código que começou em um protocolo de 1º de abril
- Esse código de status faz referência ao Hyper Text Coffee Pot Control Protocol
- Esse protocolo foi definido como uma piada de 1º de abril em 1998 e 2014
- O 418 foi originalmente definido como um código de 1º de abril na RFC 2324
Por que ele foi reservado na RFC 9110
- O código de status 418 foi oficialmente reservado na RFC 9110 porque a brincadeira acabou sendo amplamente distribuída
- Por causa dessa reserva, não será possível atribuir ao 418 um significado não humorístico no futuro próximo
Como ele é usado na prática
- Alguns sites usam a resposta 418 para requisições que não querem processar
- Um exemplo representativo são requisições como consultas automatizadas
Especificações relacionadas e materiais de referência
- RFC 2324 section 2.3.2: definição original do código de status 418
- HTTP Semantics name-418-unused: status de reserva do 418
- HTTP response status codes: lista de códigos de status de resposta HTTP
- Wikipedia: Hyper Text Coffee Pot Control Protocol: material de referência sobre o Hyper Text Coffee Pot Control Protocol
1 comentários
Comentários no Hacker News
Se estiver entediado, vale a pena ler as discussões de quando mnot tentou remover o código de status 418 de várias linguagens e implementações, alegando que ele não era tecnicamente correto
https://github.com/nodejs/node/issues/14644
https://github.com/golang/go/issues/21326
No fim, alguém chegou até a criar um site chamado http://save418.com/
A ideia era colocar um emoji de foguete quando uma tarefa fosse concluída com sucesso, e eu era contra. Quando se começa a colocar esse tipo de coisa, cada pessoa passa a ter suas preferências, surgem discussões constantes sobre colocar mais em alguns lugares e tirar de outros, e o assunto acaba sendo puxado mesmo quando se está discutindo algo totalmente diferente
Especialmente se você não mede, com rastreamento do comportamento dos usuários, se isso realmente melhora alguma métrica, vejo o aumento do custo de comunicação como um prejuízo grande. Não é uma questão de profissionalismo; é que a subjetividade de algumas pessoas gostarem, outras não gostarem e outras nem perceberem criava pequenos atritos com frequência
Eu respondo com 418 a requisições de bots que não são legítimas. É divertido e também facilita filtrar os logs
Um exemplo de configuração do Nginx seria este
Nothing to hack around here, I’m just a teapot:
location ~* .(?:php|aspx?|jsp|dll|sql|bak)$ {
return 418;
}
error_page 418 /418.html;
Exemplo: https://FreeSolitaire.win/wp-login.php
Para referência, /wp-login.php é a URL de login do WordPress, e bots que procuram instalações vulneráveis do WordPress costumam solicitá-la às cegas
Fico curioso para saber como bloquear permanentemente esse endereço só pelo fato de ele ter solicitado uma URL dessas
O RFC original linkado também é uma boa leitura: https://www.rfc-editor.org/rfc/rfc2324
Quando leio documentos sobre como TCP ou TLS funcionam, sinto que foram escritos por especialistas com experiência e visão. Já os documentos CCSDS parecem ter sido escritos por burocratas que nunca escreveram uma linha de código na vida
Isso era uma piada aleatória de nerd anterior à época em que “sir, this is a wendy's” explodiu como meme no Facebook nos anos 2010
Sempre me lembro de uma parte ótima que encontrei certa vez, não lembro por qual motivo, lendo o RFC do HTTP/2
Antes de “429 Too Many Requests” ser padronizado, a API do Twitter retornava, ao limitar a taxa de requisições, o código de status não padrão 420 e a frase “Enhance Your Calm”. Eles pararam por motivos compreensíveis, mas essa frase acabou entrando sorrateiramente no HTTP/2
https://datatracker.ietf.org/doc/html/rfc7540#section-7
Se você olhar o item 0xb, a mensagem de encerramento de conexão por carga excessiva é realmente ENHANCE_YOUR_CALM. Eu rio toda vez que vejo
Sempre que encontrei esse código de erro em serviços reais, fiquei muito frustrado
Alguém, tentando parecer espirituoso, retorna isso em vez de um código de status correto como 429 ou 503, e por causa disso muitos parsers de códigos de status HTTP quebram
Não é espirituoso, nem engraçado; na verdade é cansativo. Eu sei que sou uma pessoa sem graça, mas tenho trabalho a fazer
Dizem que o Van Halen colocava em seus contratos de shows que deveria haver M&M nos bastidores, mas que todos os marrons fossem removidos
O vocalista David Lee Roth explicou em sua autobiografia ‘Crazy From the Heat’ que isso não era uma exigência infantil, e sim um teste inteligente para avaliar rapidamente se a casa de shows era segura
Se o local colocasse M&M marrons, isso significava que não tinha lido o contrato direito, e portanto poderia também ter cometido erros em partes mais perigosas, como fornecimento elétrico ou carga suportada pelo palco
https://www.metaltalk.net/chris-dale-myth-busting-the-van-ha...
Antigamente, o Sonatype Nexus retornou 418 durante o upload de artefatos, e isso não me impressionou nem um pouco
O uso indevido de códigos de status HTTP me surpreende toda vez que vejo. Meu caso favorito foi um serviço de um cliente que retornava “200 OK” e colocava apenas o texto “500” no corpo da resposta
Quando pedimos que retornassem erro 500 em vez de 200 quando houvesse erro na API, eles trocaram apenas o 200 dentro da resposta, não o cabeçalho. “200 Created” também é um exemplo bem forte de falta de entendimento do desenvolvedor ou de alguma restrição estranha do framework
Usamos o código de resposta 418 no serviço de autenticação
Ele serve para distinguir se o token é inválido por expiração ou por outro motivo. Se for 418, entendemos que basta renovar automaticamente o token de acesso. É bem inofensivo, e não é nenhuma medida de segurança
Discussões relacionadas
2020, 153 pontos · 118 comentários: https://news.ycombinator.com/item?id=24206899
2021, 193 pontos · 108 comentários: https://news.ycombinator.com/item?id=28541327
2023, 206 pontos · 189 comentários: https://news.ycombinator.com/item?id=36090344
Em threads como esta, normalmente alguém linka a iiNet coffee cam. Aqui está
https://coffeecam.iinet.net.au/coffee/history/
A coffeecam também era simpática, e o acb, que cuidava principalmente dela, vendia doces americanos ali por perto. Pelo menos era assim quando eu trabalhava na Hay Street