Web配信の技術 ―HTTPキャッシュ・リバースプロキシ・CDNを活用する

サポートページ

この記事を読むのに必要な時間:およそ 0.5 分

ダウンロード

サンプルファイルのダウンロード

(2021年2月2日更新)

本書のサンプルファイルをご利用いただけます。

ダウンロード
サンプルファイル

補足情報

7章のCloudflareに関する情報について

(2023年5月26日更新)

Cloudflareの無料プランでは多段構成はできません。ヒット率を稼ぐためにも自社配信での多段構成は必須です。

https://blog.cloudflare.com/orpheus/

Cloudflareの多段構成(Tiered Caching)は元々有料機能でしたが,2021/09に無料で開放されました。有用な機能ですので有効にするのをお勧めします。

また,サイトのドメインとは別にCDN用のドメイン切り出して運用することを例としておりますが
https://www.cloudflare.com/service-specific-terms-application-services/
こちらの「Content Delivery Network (Free, Pro, or Business)」で触れられているようにあくまでもWebページ・サイトをキャッシュして利用することを想定しています。

そのため,恒久的にCloudflareを使う場合は,サイト側もCloudflareを通す必要があります。

(以下2021年4月21日更新)

P.69 3.3.1 代表的なステータスコード中の308に関する補足

リダイレクトで利用するステータス308はRFC7538で定義されています。

P.88 3.5.2のno-cacheに関する説明文の補足

書籍中ではほとんどない,見かけたことがないとしたno-cacheの引数について補足します。

CloudFrontはno-cache="param"の記法に対応しています。 https://docs.aws.amazon.com/ja_jp/AmazonCloudFront/latest/DeveloperGuide/Cookies.html を参照してください。

P.94 3.6.5のs-maxageとmaxageの設定に関する言及の補足

3.6.5でs-maxageはmax-ageより小さくすべきと記載しましたが,意図してCDNなどではキャッシュを行いクライアントではキャッシュを行わない場合はs-maxage=3600, max-age=0といった設定をすることがあります。
この効果は「5.10.3 ローカルキャッシュがある状態で即時のコンテンツ更新」で触れたCDNではキャッシュを行いクライアントにはno-cacheを返すときとほぼ同等の効果が得られます。no-cacheだとCDN側でレスポンスヘッダの改変が必要ですが,s-maxage=3600, max-age=0だとCDN側での改変なしでも設定が可能ですので環境に応じて使うのが良いでしょう。

P.333 6.6.4で紹介したWeb are socialのレポートに関する補足

We are socialのレポートは毎年更新されており,2021年版によると平均ダウンロード速度は固定回線が96.43Mbpsでモバイルが42.70Mbpsと書籍中で触れた2019年当時のデータ(固定54.3Mbps/モバイル25.1Mbps)よりかなり向上しています。

お詫びと訂正(正誤表)

本書の以下の部分に誤りがありました。ここに訂正するとともに,ご迷惑をおかけしたことを深くお詫び申し上げます。

(2022年4月19日最終更新)

P.2 1.1の説明文中の記述

スマーフォン
スマーフォン

P.3 1.1のサーバーのリクエストに関する文言

クライアント(閲覧者)が増えればサーバーへのリクエスト増えていきます。
クライアント(閲覧者)が増えればサーバーへのリクエスト増えていきます。

P.4 1.1の図1.4下の説明

ProxyやCDNがキャッシュとクライアントの間に入り、代わりに
ProxyやCDNがサーバーとクライアントの間に入り、代わりに

(以下2021年4月5日更新)

P.11 2.1の脚注2

VTuebr
VTuber

P.88 3.5.2のno-cacheに関する説明文

仕様上no-cacheは引数を持つことがありますが、実用されておらず、筆者は見かけたことはありません。
仕様上、no-cacheは引数を持つことがあります。ただし、筆者の知る限りでは実装はほとんどありません。

P.100 3.10.2の見出しの文言

条件付きリクエスト(If-Modified-Sice/If-None-Match)―RFC 7232
条件付きリクエスト(If-Modified-Since/If-None-Match)―RFC 7232

P.208 第5章のコラム「キャッシュアルゴリズム」内のLFRUの表記

LFRU(Least frequent recently used)などもあります。
LFRU(Least Frequently Recently Used)などもあります。

P.252 5.12.4の識別子の説明

その際にEtagや
その際にETag

P.284 5.16.2の静的ファイルでのチェック箇所

LProxy←→App間のネットワーク
Appのネットワークの状態
Proxy←→Appサーバー間のネットワーク
Appサーバーのネットワークの状態

P.304 第6章のコラム「ネットワークの品質が良いということはどういうことか」の見出し文言

コラム ネットワークの品質が良いということはどういうことか
ネットワークの品質が良いということはどういうことか

本来は不要な「コラム」の文字が入っていました。

P414 A.5.1のエスケープの説明

ところが、VCLでは「」でのエスケープには対応していないため通りません。
ところが、VCLでは「\」でのエスケープには対応していないため通りません。

P.418 A.6の脚注47のドキュメントのURL

https://github.com/varnish/varnish-modules/blob/master/src/vmod_header.vcc
https://github.com/varnish/varnish-modules/blob/0.17.0/src/vmod_header.vcc

URL中のバージョン指定が一部誤っていました。