Visual RFC.
ALL RFCs / RFC 8174
Read the RFC ↗

RFC 8174 / START HERE

BCP 14 key words, before the details

BCP means Best Current Practice. RFC 8174 is a clarification of the requirement-word convention in BCP 14, read alongside RFC 2119; its title is not a protocol acronym.

It explains when words such as MUST, SHOULD and MAY have their defined special meanings: only when they appear in all capitals. Lowercase and mixed case keep their normal English meanings.

The idea in one picture

  1. Read the words

  2. Preserve the level

  3. Read the whole rule

A simplified picture of the idea; the chapters explain the actual mechanisms.

Why it exists

RFC 2119 said the words were often capitalized, which left ambiguity. RFC 8174 updates that introductory guidance and boilerplate without obsoleting RFC 2119 or redefining its requirement levels.

A familiar example

When building a client from a specification, distinguish an absolute MUST from a SHOULD with carefully justified exceptions and a truly optional MAY. Also read plain format rules: a requirement does not need a special key word to remain a requirement. This is reading guidance, not a packet protocol or a security guarantee.

Helpful background

You can start here without reading another RFC. The guide introduces its essential concepts as you go.

What you’ll learn next

Begin with chapter one, or choose a topic.

  1. Read the clarification alongside RFC 2119BCP means Best Current Practice. RFC 2119 defines requirement levels; RFC 8174 clarifies when its special key-word meanings apply.
  2. Distinguish special key words from ordinary EnglishMUST, must and Must are different spellings for this convention. Only the all-capital form has the defined BCP 14 special meaning.
  3. Keep requirement levels distinctThe capitalization clarification preserves RFC 2119’s different levels. SHOULD is not a weaker spelling of MUST, and MAY is not a recommendation.
  4. Read normative text without a key-word shortcutNormative text specifies requirements. RFC 8174 explicitly says it need not use special key words; many requirements are expressed through plain prose, grammar or field definitions. An octet is an eight-bit byte.
Start with chapter one →

This introduction explains RFC 8174 (2017). Read the original RFC ↗