Skip to content
quotesby

About this quote

What does it mean?
Systems should send data cautiously but handle incoming data generously to ensure compatibility.
In plain terms
Be strict with what you send and lenient with what you receive.
What can you take from it?
Design systems to be robust against unexpected inputs.

Where it applies

  • network protocols
  • API design
  • data parsing

Putting it to work

  • Validate incoming data loosely
  • Strictly format outgoing data

Questions to consider

  • How loose should input validation be?
  • What happens when standards diverge?

Another view

Being too liberal in receiving can sometimes lead to security vulnerabilities.

More from Jon Postel

  1. A name indicates what we seek. An address indicates where it is. A route indicates how we get there.

    Permalink to quote #1
  2. TCP implementations will follow a general principle of robustness: be conservative in what you do, be liberal in what you accept from others.

    Permalink to quote #3
  3. I think they called me the closest thing to a God of the Internet. But at the end, that article wasn't very complimentary, because the author suggested that I …

    Permalink to quote #4

Related quotes

  1. Think of it: the lowest common denominator in being digital is not your operating system, modem, or model of computer. It's a tiny piece of plastic, designed d…

    Nicholas NegroponteNicholas Negroponte quote #2
  2. 'Fragmentation is like classful addressing -- an interesting early architectural error that shows how much experimentation was going on while IP was being desi…

    Paul VixiePaul Vixie quote #3
  3. TCP implementations will follow a general principle of robustness: be conservative in what you do, be liberal in what you accept from others.

    Jon PostelJon Postel quote #3