RFC 2119 - как интерпретировать ключевые слова в RFC

Статус документа

Документ RFC 2119 относится к категории документов: "Best Current Practice" для сообщества Internet. Принимаются поправки и предложения, направленные на совершенствование документа. Допускается свободное распространение документа.

Тезисы

Во многих документах, описывающих стандарты, используются слова для обозначения уровня требований. Такие слова часто выделяются заглавными буквами или жирным шрифтом. В данном документе определяется толкование этих слов, фраз и производных в документах IETF. Авторам документов, следующих приведенным здесь требованиям, РЕКОМЕНДУЕТСЯ помещать в начале документов приведенный ниже текст: "Ключевые слова НУЖНО (must), ТРЕБУЕТСЯ (required), НЕОБХОДИМО (shall), НЕ НУЖНО (must not, shall not), РЕКОМЕНДУЕТСЯ (recommended), СЛЕДУЕТ (should), НЕ СЛЕДУЕТ (should not), НЕ РЕКОМЕНДУЕТСЯ (recommended not), ВОЗМОЖНО (may), НЕОБЯЗАТЕЛЬНО (optional) в данном документе должны интерпретироваться в соответствии с требованиями RFC 2119".

Отметим, что "сила" этих слов зависит и от уровня требований использующего их документа.

Нужно, Требуется и Необходимо

Фраза и слова Нужно (must), Требуется (required) и Необходимо (shall) используется для требований, которые являются обязательными в спецификации.

Не нужно, Нельзя

Фраза Не нужно и слово Нельзя (must not, shall not) обозначают абсолютный запрет в рамках спецификации.

Следует, Рекомендуется

Слова Следует (should) и Рекомендуется (recommended) используется для обозначения не обязательных требований. От их выполнения можно отказаться при наличии весомых причин, но в этом случае возможно возникновение проблем.

Не следует, Не рекомендуется

Фразы Не следует (should not), Не рекомендуется (recommended not) используются применительно к особенностям или функциям, которые допустимы и могут быть полезными, но их применение может вызывать проблемы. При реализации таких особенностей или функций стоит учесть возможность возникновения проблем и принимать взвешенное решение.

Возможно, Необязательно

Слова Возможно (may), Необязательно (optional) обозначают элементы, реализация которых не является обязательной. Одни разработчики могут включать такие опции в свою продукцию для расширения возможностей, другие - опускать в целях упрощения. Реализация, не включающая ту или иную опцию, должна быть готова к работе с реализациями, которые используют эту опцию (возможно совместная работа будет обеспечиваться за счет некоторого ущерба функциональности). Включающие опцию реализации должны быть готовы (естественно, без использования такой опции) к взаимодействию с реализациями, которые такую опцию не поддерживают.

Рекомендации по использованию

Определения из документа RFC 2119 следует использовать очень аккуратно. НУЖНО применять их лишь там, где это действительно диктуется требованиями взаимодействия или для предотвращения ситуаций, когда может быть нанесен вред (например, для ограничения избыточных повторений передачи). В частности, такие обозначения недопустимо использовать для обозначения преимуществ одной реализации по сравнению с другой, если это не продиктовано соображениями по взаимодействию.

Вопросы безопасности

Термины из RFC 2119 часто используются при обсуждении вопросов по безопасности. Отказ от выполнения НУЖНЫХ или РЕКОМЕНДУЕМЫХ требований или реализация НЕ НУЖНЫХ или НЕ РЕКОМЕНДУЕМЫХ возможностей может существенно влиять на безопасность. Авторы документов должны уделить внимание вопросам безопасности, чтобы не появлялись реализации с невыполненными требованиями или рекомендациями.

Благодарности

Определения терминов даны на основе использования этих терминов во множестве RFC. Кроме того, при подготовке документа были учтены предложения многих людей, включая Robert Ullmann, Thomas Narten, Neal McBurnett, Robert Elz.

Адреса авторов:

Scott Bradner, Harvard University 1350 Mass. Ave. Cambridge, MA 02138. Phone: +1 617 495 3864, email - sob@harvard.edu

Network Working Group
Request for Comments: 2119
BCP: 14
Category: Best Current Practice
S. Bradner
Harvard University
March 1997

Оригинал документа

RFC 2119 оригинал документа (eng)
Опубликовано: 2015/12/05
HTML-код ссылки на эту страницу:
<a href="https://petrenco.com/standarts.php?txt=407" target="_blank">RFC 2119 - перевод</a>
6072