📜

【RFC 2119】RFCを読めるようになりたい

2022/12/11に公開

RFCを読めるようになりたいということで、今回はかなり短いですが重要なRFCであるRFC2119を読んでみます。また、ここに書かれている内容は翻訳ではないことにご注意ください。

ちなみに、ちょっと古い記事ではありますが、RFCを読むために必要な知識に綺麗にまとまっており参考にさせていただいたので紹介します。
https://qiita.com/progrhyme/items/68922ec903ac39861125

RFC2119

タイトルは、Key word for use in RFCs to Indicate Requirement Levels
RFCの中で使われているキーワードの要求レベルを示します。

要約

多くのRFCは使用の要求レベルを表す単語が使われており、それらの単語は大文字で書かれています。
MUSTREQUIREDSHALLMUST NOTSHALL NOTSHOULDSHOULD NOTRECOMMENDED、**NOT RECOMMENDED **、MAYOPTIONAL、これらの単語はこのRFC2119で説明されるように解釈されます。

MUST、REQUIRED、SHALL

これらの単語が書かれた場合は絶対に満たさなければならない要件であることを示します。

MUST NOT、SHALL NOT

MUSTなどの逆で、絶対に禁止であることを示します。

SHOULD、RECOMMENDED

ある特定の状況においては無視する正当な理由が存在するかもしれないですが、基本的に満たした方が良い要件であることを示します。
無視する正当な理由があったとしても、その前に一度よく考える必要がある。

SHOULDやRECOMMENDEDの逆です。

MAY、OPTIONAL

単語の通りオプションです。特定のことが省略可能であることを意味します。
また、ここでは早速MUSTという単語が使われており、次のような記述がありました。
ただし、特定のオブションを含まない実装は、そのオプションを含む実装と相互運用できることが必須であり逆もまた然りです。

Guidance in the use of these Imperatives

Imperatives(命令形) -> 大文字の単語のこと
これらの単語の使い方ガイドラインとして、無闇矢鱈に使ってはいけませんとありました。
相互運用が必要だったり、危害を引き起こす可能性がある動作を制限するためのみに使うべき(MUST)。

Security Considerations

これらの単語はセキュリティ上の意味を持つ動作を指定する場合によく使われます。
「MUST」や「SHOULD」を実装しなかったり、「MUST NOT」や「SHOULD NOT」を実装してしまった場合のセキュリティへの影響は微妙なものかもしれないため、ドキュメントの作成者はセキュリティ上の影響を詳細に述べることが重要だとあります。

感想

初めて頭からお尻までRFCをしっかりと読みました。ここの内容は知っている部分が多かったのでどちらかというと英語の勉強という感じになりましたが...
これはとっても短いので読めましたが、少しずつ長いのも読めるようになっていければと思います。
ジョークRFCについてもまとめてみたいです。

Discussion