HTTP の仕様を歴史から紐解く良書でした。
HTTP/0.9(!) から始まり、1.0, 1.1, 2、そしてセキュリティと網羅的に学ぶことが出来ます。個人的には HTTP/2 を雰囲気でしか理解していませんでしたが、分かった気になれた気がします。
↓ まえがき v から引用。
本書では次の二冊の間におさまる本として書いてきました。
・『Web API: The Good Parts』(オライリー・ジャパン 刊、水野貴明 著)
・『ハイパフォーマンスブラウザネットワーキング』(オライリー・ジャパン 刊、Ilya Grigorik 著)
これにピンときたら、読んだ方が良いと思います。『Web API: The Good Parts』は [2015-04-09-2] に読みました。読み終わった後、何度も参照することとなった、とても良い本です。
一点、サンプルコードが Go 言語なので、好き嫌いは分かれるかもしれません。
それについて私は問題なかったのですが、『Goならわかるシステムプログラミング 』と平行して読んでいたので、割と混乱しました(笑)。両方とも Go 言語で、内容が似た章もあり、作者さんも同じ渋川よしきさんです。
渋川よしきさん、どれほどの知識量なんや…。
以下、自分用のメモ。
P47
・プロクシ:通信内容を理解する。必要に応じてコンテンツを改変したり、
サーバーの代わりに応答したりする
・ゲートウェイ:通信内容をそのまま転送する。内容の改変も許さない。
クライアントからは途中に存在することを気づかれてはならない
P58
表2-3 スキーマの組み合わせとリファラーの有無
アクセス元 | アクセス先 | 送信するかどうか? |
---|---|---|
HTTPS | HTTPS | する |
HTTPS | HTTP | しない |
HTTP | HTTPS | する |
HTTP | HTTP | する |
P92
curl コマンドは複数のリクエストを並べて書くことで、Keep-Alive を使っ
て複数のリクエストを続けて送ります。
$ curl -v http://www.google.com http://www.google.com
P147
(省略)Git では、転送用プロトコルとして SSH と HTTPS の2種類をサ
ポートしています。実はこの HTTPS の中では WebDAV を使っています。
SSH は暗号化した通信経路を使いますが、その中の通信はオリジナルの
Git プロトコルを使っています。HTTPS であれば、どの WebDAV サーバー
を使ってもホストできるため、セットアップが簡単というメリットがあり
ますが、差分だけの転送が行える Git プロトコルのほうが通信速度はす
ぐれています。