「Real World HTTPミニ版」の感想

「Real World HTTPミニ版」を読みました。

書籍版「Real World HTTP」のダイジェスト版ということで、goによるHTTPクライアントの実装など、いくつか内容が省略されています。HTTPの各バージョンの説明などはそれなりのボリュームがあり、HTTPについてあまり知らないという方の入門には最適な一冊かもしれません。何よりも、この内容で無料というのは凄いですね。

以下は書評というより私の読書メモ、感想文レベルの内容です。何かの参考になればと思います。

前半のHTTPの各バージョンの説明ではcurlを使ったHTTPリクエストの実行例が載っていて分かりやすいです。

「1.4.1 ヘッダーの送信」の中で「RFC では同じヘッダーを複数回送ることも許容しています。」と書いてありました。過去にpythonのurllibでHostヘッダーを(意図せず)複数回セットしたHTTPリクエストが特定のApacheのバージョン(もしくはmodule?)で無効なリクエストとして扱われた経験があり、ヘッダーの多重定義はダメだと思っていました。もしかしたらクライアントライブラリやサーバの実装依存だったのかもしれません。

「1.6 リダイレクト」で紹介されている303や307,308は初めて知りました。これまでリダイレクトといえば301,302と覚えていました。メソッド変更のルールについても意識したことは無かったです。

「2.3 キャッシュ」のコントロールのフローは正しく理解できてなかったと思います。

3.4 のOPTIONSメソッドやHTTPクライアントを作る人なら知っているであろうCONNECTメソッドの説明が載っているのは良いと思いました。

4章のHTTP/2 と HTTP/3 は知識が無かったので勉強になりました。

5章のウェブアプリケーションの章はこれからソフトウェアエンジニアになる方や開発を始める人にとっては役に立ちそうな内容です。

個人的にミニ版に載せてほしいなと思ったことは、

○バーチャルホストの説明、TLS利用時のバーチャルホストの動作

○クライアントが初めてのサーバに接続するときHTTP2で接続できるかどうかをどうやって判断しているのか(リクエストヘッダーのALPNとアップグレードでやっているらしい?)

バーチャルホストについては書籍版には含まれているのでそちらにも目を通してみます。

次回は書籍版について書評(感想文?)を書いてみたいと思います。

記載内容に誤りや不備があればご指摘ください。引用範囲が広すぎないか少し気にしてます。



この記事が気に入ったらサポートをしてみませんか?