Empiriceme · Precept · Normative Principle

Postel's Law (Robustness Principle)

Also called Be conservative in what you send, liberal in what you accept

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

Postel's 1980 rule from TCP specification. Now contested in protocol design: leniency in what you accept entrenches other people's bugs, so the standard drifts toward whatever implementations happen to do.

In practice

  • A payments gateway that quietly accepts dates in three formats is receiving all three from its clients within a year, and can never drop any of them.
  • A parser that tolerates malformed input finds every producer relying on the tolerance, and the specification is now whatever the parser does.
Possible explanations
The explanation is interoperability under imperfect implementation: accepting sloppy input lets a network grow when not everyone implements the standard correctly.
In its favour
It worked as intended in the early internet, where strict rejection would have prevented adoption, and it remains sound advice where the sender cannot be fixed.
Against it
It is now contested in protocol design, since leniency entrenches other people's bugs, the de facto standard drifts towards whatever the most popular implementation accepts, and security flaws follow from parsing input that should have been rejected.
Standing
Now contested in protocol design, where leniency is argued to entrench bugs.
Subject
Design & Systems
Essay
Rules of thumb for building things that work

Search every entry·Every entry, A to Z