cloudpack の 自称 Sensu芸人 の かっぱこと 川原 洋平(@inokara)です。
はじめに
色々と話がややこしくなる時こそ基本に帰るべきだと思う今日この頃。同僚に教えて頂いたインターネットを支える基礎的な技術が書かれている(と勝手に思っている) RFC 文書の幾つかをピックアップしておく。
どんな時に読むか
- プロトコルレベルの実装で何か気になることがあった時
- また、その説明を求められた時で「RFC に書いてあります」と言えば全てが収まりそうな時
ピックアップ
TCP あたりのお話
topics
- TCP 通信とは何たるか
- 「3.4. コネクションの確立」
- 「3.5. コネクションのクローズ」
通信プロトコル層: リンク層、IP 層、トランスポート層あたりのお話
- RFC: 1122 Requirements for Internet Hosts — Communication Layers
- Requirements for Internet Hosts — Communication Layers(日本語訳)
topics
- 「4.2.2.13 コネクションのクローズ: RFC-793 セクション 3.5」
- TCP コネクション終了に関する二つの作法
- 1 つはFIN ハンドシェークを使用した TCP クローズシーケンス
- もう 1 つは RST セグメントが送信されて、コネクション状態が即座に破棄される “abort”
HTTP と TCP 接続あたりのお話
HTTP ヘッダあたりのお話
topics
- HTTP/1.1 の場合には Host: ヘッダは必須
- Keep-Alive は基本的には HTTP/1.1 から実装されたものだけど HTTP/1.0 でも後付けで実装された
- HTTP/1.1 は Connection: close が続く間は Keep-Alive
- HTTP/1.0 はサーバーとクライアントのやりとりが続く間は Connection: Keep-Alive がヘッダ上でやりとりされて接続が破棄されるまで続く
最後に
- 「おい、いまさらかい」って感じですが…
- 基礎大事
元記事は、こちら