Что произошло
Джон Постел не был знаменит. Он не выступал на конференциях перед тысячными залами, не давал интервью Forbes, не основывал стартапов. Он был тихим бородатым человеком в сандалиях и гавайской рубашке, который тридцать лет сидел в Институте информационных наук Университета Южной Калифорнии (USC/ISI) и делал то, что мало кто понимал и ещё меньше ценил: он редактировал стандарты интернета.
Джон Постел (Jon Postel, 1943–1998) — один из тех людей, без которых интернет не состоялся бы, но чьё имя известно лишь инженерам. С 1969 года — с самого первого RFC (Request for Comments, «запрос на комментарии») — Постел был редактором этой серии документов. RFC — это не законы и не спецификации в формальном смысле: это предложения, обсуждения, стандарты, рождённые в духе академической открытости. Первый RFC написал его друг Стив Крокер от руки в ванной комнате (чтобы не разбудить соседей по комнате в общежитии UCLA). К 1998 году, когда Постел умер, серия насчитывала более двух тысяч документов. Постел отредактировал почти все из них.
Кроме того, Постел основал и руководил IANA (Internet Assigned Numbers Authority) — организацией, распределяющей IP-адреса и управляющей корневой зоной DNS. Фактически Постел контролировал адресную книгу всего интернета. Когда коллегу спросили, кто принимает решения о стандартах сети, тот ответил: «Мы так и не поняли, кто. Но мы точно знаем, что Джон Постел как-то с этим связан».
Его самая известная формулировка появилась в RFC 761 — спецификации протокола TCP (Transmission Control Protocol), опубликованной в январе 1980 года. Раздел 2.10 содержал фразу, позже ставшую канонической:
«Be conservative in what you do, be liberal in what you accept from others»
«Будьте консервативны в том, что делаете, и либеральны в том, что принимаете от других».
В 1989 году Роберт Брейден канонизировал эту формулировку в RFC 1122 — документе «Requirements for Internet Hosts», ставшем одним из ключевых стандартов интернета. Именно с этого момента принцип стали называть Законом Постела (Postel’s Law) или принципом робастности (Robustness Principle).
Что означает этот закон на практике? Представьте, что две компьютерные системы обмениваются данными. Система-отправитель должна строго следовать протоколу: ни одного лишнего байта, ни одного нарушения формата. Система-получатель, напротив, должна быть снисходительной: если данные немного отклоняются от стандарта, но их смысл можно разобрать, — разобрать и обработать, а не отвергнуть с ошибкой.
Зачем? Потому что интернет — децентрализованная система. Никто не контролирует все узлы. Программы пишут разные люди, на разных языках, с разным пониманием стандартов. Если каждый узел будет отвергать пакеты с малейшим отклонением от спецификации, сеть просто не заработает. Робастность — не вежливость. Это инженерная необходимость.
Контекст эпохи
Принцип Постела родился в контексте очень конкретной инженерной проблемы. В конце 1970-х — начале 1980-х годов ARPANET (предшественник интернета) переходила с протокола NCP на TCP/IP. Переход затрагивал сотни узлов — университеты, военные базы, исследовательские лаборатории. Каждый узел обновлялся в своём темпе. Неизбежно возникали ситуации, когда одна сторона уже работала по новому протоколу, а другая — ещё по старому или по собственной интерпретации нового.
Если бы каждый узел жёстко требовал идеального соответствия стандарту, переход занял бы годы и стоил бы нервных срывов. Постел предложил прагматичный подход: принимай то, что можешь понять, отправляй только безупречное. Это позволило сети работать даже в условиях, когда разные узлы находились на разных стадиях обновления.
Самый наглядный пример закона Постела в действии — веб-браузеры. Когда Тим Бернерс-Ли создал HTML, он сделал его нарочито простым. Но по мере роста веба люди начали писать HTML с ошибками: незакрытые теги, пропущенные кавычки, вложенные элементы в неправильном порядке. Строгий парсер отказался бы отображать такие страницы. Браузеры поступили по закону Постела: они прощали. Netscape, Internet Explorer, а позже Firefox и Chrome научились обрабатывать невалидный HTML, угадывая намерение автора. Незакрытый тег <b>? Браузер закроет его сам. Пропущенные кавычки в атрибуте? Браузер догадается, где они должны быть.
Это имело парадоксальное последствие: веб стал доступен любому, кто мог написать хотя бы приблизительно корректный HTML. Порог входа стал минимальным. Миллионы людей создали свои первые веб-страницы в Notepad, не зная ни одного стандарта, — и браузеры их отобразили. Веб вырос именно потому, что был снисходителен к несовершенству.
Значение для UX
Закон Постела — инженерный принцип. Но его влияние на проектирование интерфейсов оказалось глубже, чем Постел мог предположить.
Толерантность к ошибкам пользователя. Когда система «либеральна в том, что принимает», она прощает ошибки. Не требует идеального ввода. Не падает от неожиданного действия. Это прямое соответствие эвристикам Нильсена: «предотвращение ошибок» и «помощь пользователям в распознавании, диагностике и восстановлении после ошибок». Интерфейс, спроектированный по закону Постела, не кричит «ОШИБКА!» при первом же отклонении от ожидаемого — он пытается понять, что пользователь имел в виду.
Автокоррекция и автозаполнение. Google Search — виртуозное воплощение закона Постела. Введите запрос с опечаткой — Google ответит: «Возможно, вы имели в виду…» и покажет результаты для исправленного запроса. Введите дату в любом формате — «1 марта», «01.03.2026», «March 1», «1/3/26» — хорошая система примет все варианты. Телефонный номер — с пробелами, с дефисами, с кодом страны или без: закон Постела требует принять каждый разумный формат.
Гибкость ввода данных. Одна из самых распространённых ошибок в формах — требование единственного формата. Поле «телефон» принимает только цифры без пробелов. Поле «дата» принимает только ДД.ММ.ГГГГ. Поле «имя» не принимает дефисы. Каждое такое ограничение — нарушение закона Постела. Хороший интерфейс консервативен в том, что отправляет (передаёт серверу нормализованные данные), но либерален в том, что принимает от пользователя.
Обратная сторона. Закон Постела не бесспорен. Критики — и среди них разработчики стандартов W3C — указывают, что чрезмерная терпимость браузеров к невалидному HTML привела к «зоопарку» несовместимых интерпретаций. Каждый браузер прощал по-своему, и результат отображения одной и той же невалидной страницы мог отличаться в Netscape и Internet Explorer. Это спровоцировало «войны браузеров» 1990-х и стало одной из причин создания XHTML — строгой версии HTML, которая требовала идеального соответствия стандарту. XHTML, впрочем, не прижился. HTML5 нашёл компромисс: стандартизировал правила обработки ошибок, чтобы все браузеры прощали одинаково.
Закон Постела и юзабилити. Если перевести принцип робастности на язык UX, получится простое правило: система должна быть умнее пользователя в обработке неоднозначности. Пользователь не обязан знать стандарты. Он вводит данные так, как ему удобно. Задача системы — понять намерение и обработать корректно. Это не значит «принимать что угодно» — это значит «делать всё возможное, чтобы коммуникация состоялась».
Джон Постел умер 16 октября 1998 года от осложнений после операции на сердце. Ему было пятьдесят пять лет. Интернет, который он помогал строить тридцать лет, к тому моменту насчитывал около 150 миллионов пользователей. Сегодня их более пяти миллиардов. И каждый раз, когда поисковая строка прощает вам опечатку, а форма принимает телефон в любом формате, — работает принцип, сформулированный тихим человеком в гавайской рубашке и сандалиях.
Связанные статьи
- Эвристики Нильсена — эвристики «предотвращение ошибок» и «помощь в восстановлении после ошибок» — прямое воплощение закона Постела в UX. Толерантная система не просто прощает, а помогает.
- Что такое UX — закон Постела расширяет понимание UX: хороший опыт взаимодействия — это не только удобный интерфейс, но и система, которая прощает несовершенство пользователя.
- Что такое юзабилити — одна из пяти компонент юзабилити по ISO 9241 — «устойчивость к ошибкам». Закон Постела формулирует тот же принцип инженерным языком.
Из серии «История UX»:
- Всемирная паутина (1989) — веб стал самым масштабным полигоном для закона Постела: браузеры, прощающие невалидный HTML, позволили миллионам людей создавать веб-страницы.
- Модель Кано (1984) — толерантность к ошибкам по Кано — обязательная характеристика (Must-be): пользователь не замечает, когда система прощает, но немедленно раздражается, когда не прощает.
- IBM PC (1975–1981) — открытая архитектура IBM PC и закон Постела отражают один и тот же принцип: система работает лучше, когда терпима к разнообразию.