A few kind readers answered my implicit plea for the classic quote about the differing responsibilities of producers and consumers. Mark Mascolino was the first to send a pointer to the IETF RFC it first appeared in: Jon Postel’s RFC 793 - Transimission Control Protocol (that’s TCP to you and me), where it appeared in a section of its own, and was even given a name (Robustness Principle):
be conservative in what you do, be liberal in what you accept from others.
Charles Miller wrote to point out the downside of the philosophy: that being liberal in acceptance means bad implementations are allowed to flourish, leaving the burden on all future implementations to forever pick up the slack. He has written about it before: Grisham trumps Postel.
The XML standard took the exact opposite approach: implementation must be extremely strict, to prevent the sort of slop that HTML allowed.
So what’s the right thing to do? To paraphrase the witticism about standards, That’s the great thing about design principles: there are so many to choose from.