【本書の内容】
本書は
Barry Pollard, "HTTP/2 in Action",
Manning Publications 2019
の邦訳版です。
ブラウザとWebサイトを繋ぐ標準的なプロトコルとして、
HTTPは想定を遥かに超える長きに渡って活用されてきました。
プロトコルに限らず、たいていの技術は20年も経てば、
なにかしらの不満や改善点が見えてくるものです。
本書のメインテーマであるHTTP/2は現行のHTTPと比べて、
ストリームやサーバープッシュ、ヘッダー圧縮や優先順位付けをサポートすることで、
速度、セキュリティ、効率性を大幅に向上させます。
本書ではHTTP/2の恩恵を最大限に受けられるよう、
知っておくべきことを詳細に開示してくれます。
それはたとえば、フレームのような新機能を使った
パフォーマンスの最適化や、多重化、プッシュなどです。
また、フローコントロールや依存性など実世界に即した内容も取り上げています。
本書に書かれていることを十全に理解し、さまざまなコツや事例を知ることで、
読者はより高速かつセキュアなWebサイトを
構築できるようになるでしょう。
【本書のポイント】
・HTTPの基礎から現状の問題点・長年望まれてきた改善点の整理
・HTTP上を流れるデータを可視化しつつHTTP/2による改善点の確認
・可視化のためのツール導入とその使い方
・QUICおよびHTTP/3の進捗具合とそのための準備
【読者が得られること】
・Web開発者が知っておくべきHTTP/2の詳細
・現行のHTTPからのアップグレードとトラブルシューティング
・実世界におけるケーススタディ
・次世代技術、QUICとHTTP/3について
【著者について】
・Barry Pollard(バリー・ポラード)
20年にもなる開発経験を持つソフトウェア開発者。
開発だけではなくソフトウェアや基盤の運用にも従事しています。
Web技術やパフォーマンスチューニング、セキュリティや技術の実用的な利用方法への関心を強く持っています。
本書はBarry Pollard著『HTTP/2 in Action』(Manning Publications 2019)の邦訳版です。
HTTP/2の恩恵を最大限に受けられるよう、知っておくべきことを詳細に開示しています。たとえば、フレームのような新機能を使ったパフォーマンスの最適化や、多重化、プッシュなどです。また、フローコントロールや依存性など実世界に即した内容も取り上げます。
本書を十全に理解し、さまざまなコツや事例を知ることで、読者はより高速かつセキュアなWebサイトを構築できるようになるでしょう。
HTTP/2 の背景、需要、そしてアップグレードの手法について解説します。
プロトコルに備わっている具体的な機能とその活用方法についての、具体的な話題を解説します。
HTTP/2のことを深く理解したい人に向けて高度な話題を取り扱い、さらに深い部分を解説します。
HTTP の未来についての話をします。
主要なWeb サーバーにHTTP/2 を導入する手法について、直接的な手法(A1)とリバースプロキシによる手法を解説します。
■第1部 HTTP/2の基礎
第1章 Web技術とHTTP
1.1 Webの仕組み
1.2 HTTPとは?
1.3 HTTPの文法と歴史
1.4 HTTPSの導入
1.5 HTTPメッセージを見て、送信して、受信するツール
1.6 まとめ
第2章 HTTP/2への道
2.1 HTTP/1.1と現在のWorld Wide Web
2.2 HTTP/1.1のパフォーマンス問題に対する回避策
2.3 HTTP/1.1に関する他の問題
2.4 実際に動作しているWebサイトの例
2.5 HTTP/1.1からHTTP/2への移行
2.6 HTTP/2がWebパフォーマンスにとって意味すること
2.7 まとめ
第3章 HTTP/2への更新
3.1 HTTP/2のサポート
3.2 WebサイトでHTTP/2を有効にする方法
3.3 HTTP/2設定時のトラブルシューティング
3.4 まとめ
■第2部 HTTP/2を使う
第4章 HTTP/2の基礎
4.1 HTTP/1.2ではなくHTTP/2?
4.2 HTTP/2の接続はどのように確立されるのか
4.3 HTTP/2フレーム
4.4 まとめ
第5章 サーバープッシュの実装
5.1 サーバープッシュとは何か?
5.2 サーバープッシュする方法
5.3 ブラウザでのサーバープッシュの仕組み
5.4 条件付きでサーバープッシュする方法
5.5 サーバープッシュするものは何か?
5.6 サーバープッシュのトラブルシューティング
5.7 サーバープッシュのパフォーマンスへの影響
5.8 サーバープッシュVSプリロード
5.9 サーバープッシュのその他の使用例
5.10 まとめ
第6章 HTTP/2の最適化
6.1 Web開発者のためのHTTP/2
6.2 HTTP/1.1の最適化手法はアンチパターンか?
6.3 HTTP/2においても引き続き関連するWebパフォーマンス技術
6.4 HTTP/1.1とHTTP/2の両方に最適化
6.5 まとめ
■第3部 高度なHTTP/2の話題
第7章 高度なHTTP/2の概念
7.1 ストリームの状態
7.2 フロー制御
7.3 ストリームの優先度
7.4 HTTP/2の適合性試験
7.5 まとめ
第8章 HPACKによるヘッダー圧縮
8.1 ヘッダー圧縮が必要な理由
8.2 圧縮の仕組み
8.3 HTTPボディの圧縮
8.4 HTTP/2におけるHPACKのヘッダー圧縮
8.5 実際に動作しているWebサイトにおけるHPACK圧縮の例
8.6 HPACKのクライアントおよびサーバー実装
8.7 HPACKの価値
8.8 まとめ
■第4部 HTTPの未来
第9章 TCPとQUICそしてHTTP/3
9.1 TCPの非効率性とHTTP
9.2 QUIC
9.3 まとめ
第10章 HTTPはどこへ向かうのか
10.1 HTTP/2をめぐる議論と修正されなかったこと
10.2 現実のHTTP/2
10.3 HTTP/2の将来のバージョンとHTTP/3やHTTP/4がもたらすもの
10.4 より一般的な伝送プロトコルとしてのHTTP
10.5 まとめ
付録A 主要なWebサーバーへのHTTP/2の導入
A.1 HTTP/2に対応したバージョンへのアップグレード
A.2 リバースプロキシサーバー経由のHTTP/2の設定