{"id":12078,"date":"2015-08-23T10:48:13","date_gmt":"2015-08-23T14:48:13","guid":{"rendered":"http:\/\/mjtsai.com\/blog\/?p=12078"},"modified":"2015-08-23T10:48:13","modified_gmt":"2015-08-23T14:48:13","slug":"the-harmful-consequences-of-postels-maxim","status":"publish","type":"post","link":"https:\/\/mjtsai.com\/blog\/2015\/08\/23\/the-harmful-consequences-of-postels-maxim\/","title":{"rendered":"The Harmful Consequences of Postel&rsquo;s Maxim"},"content":{"rendered":"<p><a href=\"https:\/\/tools.ietf.org\/html\/draft-thomson-postel-was-wrong-00\">Martin Thomson<\/a> (via <a href=\"https:\/\/twitter.com\/hintjens\/status\/617267706564333568\">Pieter Hintjens<\/a>):<\/p>\n<blockquote cite=\"https:\/\/tools.ietf.org\/html\/draft-thomson-postel-was-wrong-00\"><p>Jon Postel&rsquo;s famous statement in <a href=\"https:\/\/tools.ietf.org\/html\/rfc1122\">RFC 1122<\/a> of &ldquo;Be liberal in what you accept, and conservative in what you send&rdquo; - is a principle that has long guided the design of Internet protocols and implementations of those protocols.  The posture this statement advocates might promote interoperability in the short term, but that short term advantage is outweighed by negative consequences that affect the long term maintenance of a protocol and its ecosystem.<\/p>\n<p>[&#8230;]<\/p>\n<p>An implementation that reacts to variations in the manner advised by Postel sets up a feedback cycle:<\/p>\n<ul><li>Over time, implementations progressively add new code to constrain how data is transmitted, or to permit variations what is received.<\/li>\n<li>Errors in implementations, or confusion about semantics can thereby be masked.<\/li>\n<li>As a result, errors can become entrenched, forcing other implementations to be tolerant of those errors.<\/li><\/ul>\n<\/blockquote>","protected":false},"excerpt":{"rendered":"<p>Martin Thomson (via Pieter Hintjens): Jon Postel&rsquo;s famous statement in RFC 1122 of &ldquo;Be liberal in what you accept, and conservative in what you send&rdquo; - is a principle that has long guided the design of Internet protocols and implementations of those protocols. The posture this statement advocates might promote interoperability in the short term, [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"apple_news_api_created_at":"","apple_news_api_id":"","apple_news_api_modified_at":"","apple_news_api_revision":"","apple_news_api_share_url":"","apple_news_coverimage":0,"apple_news_coverimage_caption":"","apple_news_is_hidden":false,"apple_news_is_paid":false,"apple_news_is_preview":false,"apple_news_is_sponsored":false,"apple_news_maturity_rating":"","apple_news_metadata":"\"\"","apple_news_pullquote":"","apple_news_pullquote_position":"","apple_news_slug":"","apple_news_sections":"\"\"","apple_news_suppress_video_url":false,"apple_news_use_image_component":false,"footnotes":""},"categories":[2],"tags":[27,476,71],"class_list":["post-12078","post","type-post","status-publish","format-standard","hentry","category-technology","tag-craft","tag-networking","tag-programming"],"apple_news_notices":[],"_links":{"self":[{"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts\/12078","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/comments?post=12078"}],"version-history":[{"count":1,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts\/12078\/revisions"}],"predecessor-version":[{"id":12079,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts\/12078\/revisions\/12079"}],"wp:attachment":[{"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/media?parent=12078"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/categories?post=12078"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/tags?post=12078"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}