Public Theta Blog

RFC 2119: RFCにおいて要求レベルを示すために用いるキーワード

RFC 2119は、各種RFCにおいて次の用語や表現がどの程度の要求レベルを示すと解釈されるべきかを定義している。

  • MUST
  • MUST NOT
  • REQUIRED
  • SHALL
  • SHALL NOT
  • SHOULD
  • SHOULD NOT
  • RECOMMENDED
  • MAY
  • OPTIONAL

すべてのRFCがこの解釈に従うわけではないが、多くのRFCがこのRFCを参照することで、表現を厳密に解釈できるようにしている。

本文は:

日本語訳には、たとえば:

なおRFC 8174は大文字で表記されている場合のみRFC 2119の意味で解釈することで曖昧さをなくそうというRFCであり、RFC 2119とともに参照されることが多い。

しなければならない(必要)

  • MUST(「しなければならない」)
  • REQUIRED(「要求される」)
  • SHALL(「することになる」)

は仕様を満たすには絶対必要であることを示す。

強い要求なので、この表現を用いる場合は、細心の注意が必要となる。

してはならない(禁止)

  • MUST NOT(「してはならない」)
  • SHALL NOT(「することはない」)

は仕様を満たすには絶対禁止であることを示す。

強い要求なので、この表現を用いる場合は、細心の注意が必要となる。

すべきである(推奨)

  • SHOULD(「すべきである」)
  • RECOMMENDED(「推奨される」)

は特定の条件における正当な理由なく、その項目を無視してはならないことを示す。

その項目を無視するには、細心の注意が必要となる。

すべきでない(非推奨)

  • SHOULD NOT(「すべきでない」)
  • NOT RECOMMENDED(「推奨されない」)

は特定の条件における正当な理由なく、その項目を満たしてはならないことを示す。

その項目を満たすには、細心の注意が必要となる。

してもよい(任意)

  • MAY(「してもよい」)
  • OPTIONAL(「任意である」)

は、その項目を満たすか満たさないかが実装者に任されることを示す。

逆にいえば、その項目を満たしてる実装も満たしていない実装も両方仕様を満たしているものとして正当に扱わなければならない。