RFC 精読
RFC精読
HTTP(9110)・TLS 1.3(8446)・IP(791)・TCP(9293)・DNS(1035)… インターネットを定義した主要RFCを、原典の要点から精読する。仕様を読む力がつく。
解説記事
精読した主要RFC
このRFCが何を決めたか→要点の精読→つまずきやすい点→まとめ。仕様を読む技術ごと身につける。
RFC 1035: DNS
DNSの電文を、ヘッダ12バイト・5セクション構成・リソースレコードの並び・ラベル符号化とポインタ圧縮・512バイト制限とTCP移行まで、1バイト単位で読み解けるようになるRFC 1035の精読ガイド。
RFC 2119 / 8174: 要求レベルのキーワード
仕様書の MUST・SHOULD・MAY を正確に読み分けられれば、実装の必須要件と裁量の境界が一目で分かり、相互運用性の勘所と「破ってよい条件」まで押さえられる。
RFC 3986: URI(統一資源識別子)
リンク切れやエンコード事故はなぜ起きるのか。URIの構文・パーセントエンコーディング・正規化・相対参照の解決アルゴリズムをRFC 3986の原典から精読し、Webアドレスの挙動を根本から理解し、実装や運用のミスを防げます。
RFC 4251: SSHアーキテクチャ
初回接続の警告に惰性でyesと答えていないか。SSH-2の全体像を定めたRFC 4251を精読し、3層アーキテクチャ・ホスト鍵によるサーバー認証(TOFU)・チャネル多重化を、根拠を持って説明できる知識に変える。
RFC 5321: SMTP
メールが届かない・なりすましを防げないという悩みの多くは、SMTPの二重構造の誤解が原因。RFC 5321を精読し、エンベロープとヘッダの分離、MX配送、ポート25/587/465の使い分けを土台から理解できる。
RFC 5322: メールのメッセージ形式
なりすましメールが成立する理由も、メールアドレスの正規表現が破綻する理由も、RFC 5322を精読すればヘッダと本文の構造・折りたたみ・アドレス構文・Message-IDという同じ土台から説明できるようになる。
RFC 6265: Cookie
Cookieの仕様をRFC 6265で精読し、Domainが範囲を広げる指定である理由、Pathやポートが安全境界にならない事情、SameSiteが6265に無い経緯までを押さえ、セッション設計の誤解を解ける。
RFC 6455: WebSocket
毎回HTTPヘッダを往復させるロングポーリングの無駄を、1本の持続TCP接続と最小2バイトのフレームに置き換え、全二重の双方向通信を実現します。ハンドシェイクからマスキング必須の理由までRFC 6455を原理から読み解きます。
RFC 6749: OAuth 2.0
パスワードを渡さずに「この範囲だけ許可する」を実現するOAuth 2.0の原典RFC 6749を精読し、4つのロールと認可コードフロー、PKCE時代の正しいグラント選択までを体系的に理解できる。
RFC 7519: JWT
base64urlは暗号化ではないという誤解から、algをトークンに選ばせる致命的な実装、そして失効できないという代償まで、RFC 7519を精読してJWTを使ってよい場面と避けるべき場面を判断できる。
RFC 791: IP(インターネットプロトコル)
IPヘッダの各フィールドと「ベストエフォートで運ぶだけ」という設計思想を原典から読めば、TTL・フラグメント・チェックサムがなぜその形なのか、そして信頼性がなぜ上位層の仕事なのかが腑に落ちる。
RFC 8259: JSON
JSONを定義するRFC 8259をSTD 90として精読し、数値精度・重複キー・UTF-8など「仕様があえて決めていない」せいで本番バグになる箇所を、MUST/SHOULD/MAYの区別ごと押さえられる。
RFC 8446: TLS 1.3
TLS 1.3はハンドシェイクを1往復に短縮し、RSA鍵交換やCBCなどの危険なレガシーを規格から一掃する。(EC)DHEによる前方秘匿性とAEADを必須化し、証明書までを暗号化して、速さと安全を同時に底上げした。
RFC 9000: QUIC
ヘッドオブラインブロッキングと接続確立の遅延というTCPの課題を、QUICがUDP上でどう解決したかを精読。ストリーム多重化・1-RTT確立・接続移行の仕組みまで一気に掴める。
RFC 9110: HTTPセマンティクス
HTTP/1.1・2・3で共通する意味論を1本に集約したRFC 9110を読み解き、メソッドの安全性・冪等性、ステータスコード、条件付きリクエストや認証の枠組みまで、バージョンに依存しない知識として整理できる。
RFC 9113: HTTP/2
HTTP/2のバイナリフレーミングとストリーム多重化をRFC 9113で精読し、優先度ツリーの非推奨化やサーバープッシュ衰退の背景、HTTP/3へつながるTCPの限界まで一気に把握できる。
RFC 9114: HTTP/3
HTTP/2が解けなかったTCPのヘッドオブラインブロッキングをHTTP/3がQUIC上でどう解消したかをRFC 9114で精読し、ストリーム対応付け・QPACK・Alt-Svc発見・0-RTTの注意点まで一気に把握できる。
RFC 9293: TCP
RFC 793以来40年分の追補と正誤で散らばっていたTCP仕様をRFC 9293が単一のSTDへ統合し、3ウェイハンドシェイクから状態機械・フロー制御・TIME-WAITの理由まで現代の実装が拠るべき決定版として読み解ける。