Postel's law
expressãoredesprogramação
'Seja conservador no que você faz, seja liberal no que aceita dos outros' - o princípio da robustez da especificação do TCP.
Jon Postel escreveu a máxima na especificação do TCP de 1980, e ela moldou uma geração de implementações interoperáveis de protocolo. Décadas depois, a área se retratou em parte: tolerar entrada malformada deixa erros e ataques se esconderem, e a orientação moderna (incluindo a RFC 9413) defende validação mais estrita. A lei sobrevive como o eixo de um dos debates mais longos da engenharia de protocolos.
Seja conservador no que envia, seja liberal no que aceita. Jon Postel escreveu isso na especificação inicial do TCP, e é provavelmente a frase isolada mais consequente do projeto da internet, porque permitiu que implementações escritas de forma independente interoperassem antes de existirem suítes de teste de conformidade.
A reavaliação moderna é que a segunda metade causou um dano enorme no longo prazo. Aceitar entrada malformada faz com que a entrada malformada vire normal: quem envia nunca descobre que está quebrado, quem recebe acumula código compensatório, e depois de vinte anos o protocolo de fato é aquilo que as implementações mais populares por acaso toleram. O HTML é o exemplo canônico, em que a interpretação liberal produziu anos de recuperação de erro incompatível até o HTML5 finalmente especificar exatamente como tratar marcação quebrada.
A segurança tornou o argumento mais afiado. Cada leniência é um lugar onde duas implementações podem discordar sobre o que uma mensagem significa, e o contrabando de requisições, defeitos de interpretação de certificados e uma longa lista de classes de injeção moram exatamente nessa fresta. A prática atual pende para o outro lado: especifique estritamente, rejeite cedo e falhe de forma barulhenta, e é por isso que protocolos mais novos definem a interpretação com precisão em vez de deixar espaço para a gentileza.
Também conhecido como: robustness principle, be liberal in what you accept