34 lines
3.9 KiB
HTML
34 lines
3.9 KiB
HTML
|
|
<?xml version="1.0" encoding="ISO-8859-1" standalone="no"?>
|
|||
|
|
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Postel's Prescription</title><link rel="stylesheet" href="../../jargon.css" type="text/css"/><meta name="generator" content="DocBook XSL Stylesheets V1.61.0"/><link rel="home" href="../index.html" title="The Jargon File"/><link rel="up" href="../P.html" title="P"/><link rel="previous" href="postcardware.html" title="postcardware"/><link rel="next" href="posting.html" title="posting"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Postel's Prescription</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="postcardware.html">Prev</a><EFBFBD></td><th width="60%" align="center">P</th><td width="20%" align="right"><EFBFBD><a accesskey="n" href="posting.html">Next</a></td></tr></table><hr/></div><dt><a id="Postels-Prescription"/><dt xmlns="" id="Postels-Prescription"><b>Postel's Prescription</b></dt></dt><dd><p>[proposed] Several of the key Internet <a href="../R/RFC.html"><i class="glossterm">RFC</i></a>s,
|
|||
|
|
especially 1122 and 791 contain a piece of advice due to Jon Postel,
|
|||
|
|
which is most often stated as:</p><div class="blockquote"><blockquote class="blockquote"><p>“<span class="quote">Be liberal in what you accept, and conservative in what you
|
|||
|
|
send.</span>”</p></blockquote></div><p>That is, a well-engineered implementation of any of the
|
|||
|
|
Internet protocols should be willing to deal with marginal
|
|||
|
|
and imperfectly-formed inputs, but should not assume that the
|
|||
|
|
program on the other end (that is, the program dealing with the
|
|||
|
|
well-engineered implementation's output) will be anything other
|
|||
|
|
than rigid and inflexible, and perhaps even incomplete or downright
|
|||
|
|
buggy.</p><p>This property is valuable because a network of programs adhering
|
|||
|
|
to it will be much more robust in the presence of any uncertainties
|
|||
|
|
in the protocol specifications, or any individual implementor's
|
|||
|
|
failure to understand those specifications perfectly. Though the
|
|||
|
|
policy does tend to accommodate broken implementations it is held
|
|||
|
|
to more important to get the communication flowing than to
|
|||
|
|
immediately (but terminally) diagnose the broken implementations
|
|||
|
|
at the expense of the people trying to use them.</p><p>The principle is a well-known one in the design of programs
|
|||
|
|
that handle Internet wire protocols, especially network
|
|||
|
|
relays and servers, and it is regularly applied by extension
|
|||
|
|
in any situation where two or more separately-implemented
|
|||
|
|
pieces of software are supposed to interoperate even though the
|
|||
|
|
various implementors have never talked to each other and have
|
|||
|
|
absolutely nothing whatsoever in common other than having
|
|||
|
|
all read the same protocol specification. The principle travels
|
|||
|
|
under several different names, including “<span class="quote">the Internet credo</span>”,
|
|||
|
|
“<span class="quote">the IETF maxim</span>”, “<span class="quote">the Internet Engineering
|
|||
|
|
Principle</span>”, and
|
|||
|
|
“<span class="quote">the liberal/conservative rule</span>”; the [proposed] term
|
|||
|
|
“<span class="quote">Postel' Prescription</span>” is a tribute to its inventor, the first
|
|||
|
|
RFC editor
|
|||
|
|
and (until his untimely death) probably the single most respected
|
|||
|
|
individual in the Internet engineering community.</p></dd><div class="navfooter"><hr/><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="postcardware.html">Prev</a><EFBFBD></td><td width="20%" align="center"><a accesskey="u" href="../P.html">Up</a></td><td width="40%" align="right"><EFBFBD><a accesskey="n" href="posting.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">postcardware<EFBFBD></td><td width="20%" align="center"><a accesskey="h" href="../index.html">Home</a></td><td width="40%" align="right" valign="top"><EFBFBD>posting</td></tr></table></div></body></html>
|