Postel's Law

Also known as: Robustness Principle

framework · computer science · structured-empirical

Be conservative in what you send, liberal in what you accept.

Postel's Law, also known as the Robustness Principle, was articulated by Jon Postel in RFC 760 (1980) and stated more memorably in RFC 761 (1980, the original TCP specification): 'TCP implementations should follow a general principle of robustness: be conservative in what you do, be liberal in what you accept from others.' The principle reflects a pragmatic approach to interoperability: implementations should produce strictly conformant output (so that other implementations can rely on what they receive) but accept moderately non-conformant input (so that minor protocol variations don't break communication entirely). The principle was foundational to the early Internet's interoperability across heterogeneous implementations and is widely cited as a software-engineering virtue. However, contemporary thinking is more skeptical: Eric Allman, Mark Nottingham, and others have argued that liberal acceptance enables ambiguity to persist in protocols, leading to long-term maintenance burdens, security vulnerabilities, and divergence — once non-conformant input is accepted, removing that acceptance breaks downstream consumers, locking in the original ambiguity (compare Hyrum's Law). The IETF's 2018 draft 'The Harmful Consequences of the Robustness Principle' formalized this critique. Modern protocol design increasingly favors strict-acceptance approaches (TLS 1.3, HTTP/2 frames) over Postel-style liberalism.

Originators

Jon Postel high

Year / Decade

1980 (RFC 760, RFC 761) high

Primary sources

Postel, J. (1980). RFC 760: DoD Standard Internet Protocol, Postel, J. (1980). RFC 761: DoD Standard Transmission Control Protocol, Allman, E. (2011). 'The Robustness Principle Reconsidered', ACM Queue high

Core components

Primary use case

Network protocol design and implementation, with significant decline in favor as a design principle; foundational understanding of early Internet interoperability; teaching framework for understanding protocol-evolution dynamics; reference in API and interface design discussions; basis for debate about the right design tradeoff between flexibility and strictness.

Common criticisms

Lineage

Siblings
Hyrum's Law