キャッシング
キャッシュは、顧客にファイルを提供する際の応答時間を改善するために、エッジサーバーにファイルを保存するプロセスです。 よりユーザーの近くにファイルを保存することで、キャッシュはデータがネットワークを移動するのにかかる時間(一般にレイテンシと呼ばれる)を短縮します。
デフォルトでは、 CIS、静的ファイルをキャッシュします。静的ファイルには、多くの種類の画像ファイルやテキストファイル(HTML以外のファイル)が含まれます。 キャッシュに含まれるのは、あなたのウェブサイトのファイルのみで、ソーシャル・ネットワーキング・サイトのファイルなど、第三者のリソースは含まれません。 現在のところ、 CIS、MIMEタイプに基づくキャッシュは行わない。
CIS HTMLファイルは一般に動的とみなされるため、デフォルトではキャッシュされない。 しかし、静的なHTMLと動的なHTMLを明確に区別できるのであれば、ページルールを使ってHTMLファイルをキャッシュすることは可能である。
キャッシュされたファイルにはTTL(Time-to-Live)と呼ばれる有効期限があり、それを過ぎるとキャッシュから削除される。 また、いつでも手動でキャッシュからファイルをパージすることができます。 ファイルがパージされた後、 CIS、オリジン・サーバーに戻ってファイルを再読み込みし、キャッシュを最新バージョンに更新します。
キャッシュの設定とオプションの詳細については、 キャッシュを使用したページ・ルールを 参照してください。
デフォルトのキャッシュの動作
CIS は、訪問者のロケーション、接続先のデータセンター( )、およびそのデータセンターでのリソースのリクエスト頻度に基づいて静的コンテンツをキャッシュします。 CIS
キャッシングは、リクエストにサービスを提供する CIS データセンター内でのみ行われる。 以下のリソースは CIS によってキャッシュされない:
- オフサイトまたはサードパーティのリソース
- プロキシされていないDNSレコードでホストされているコンテンツ
デフォルトでは、 CIS、エッジ・キャッシュTTLページ・ルールがそれを上書きしない限り、オリジン・ウェブ・サーバーのキャッシュ・ヘッダーを尊重します:
- CIS は、 ヘッダーが、、、 に設定されている場合、またはレスポンスにクッキーが存在する場合、リソースをキャッシュしません。
cache-control
private
no-store
no-cache
max-age=0
- CIS
cache-control
が で が 0 より大きい場合、または expires ヘッダが将来の日付を指定している場合、 リソースをキャッシュする。public
max-age
max-age
、expires
の両方のヘッダーが設定されている場合は、max-age
が優先される。
cache-control
ディレクティブも expires
ヘッダーも存在しないとき、 CIS は、以下のデフォルトのエッジキャッシュTTLで、特定の HTTP 応答コードをキャッシュする:
応答コード | TTL |
---|---|
200、206、301 | 120 m |
302、303 | 20 m |
404、410 | 3 メートル |
403 | 1 メートル |
CIS にはキャッシュをカスタマイズするためのオプションがいくつか用意されている:
- CIS ページルールを使用して、個々の URL のキャッシュ動作を設定します。
- キャッシングをカスタマイズするには、 CIS エッジ関数 または API を 使用します。
- CIS CLIで キャッシュレベルやTTLなどを調整。
CIS がキャッシュする最大ファイルサイズは、Trial および Standard Next のお客様では 512 MB、Enterprise のお客様では 5 GB です。 エンタープライズのお客様は、 サポートケースを開く ことによって、より大きなファイルのキャッシュを要求することができます。
デフォルトでキャッシュされるファイル拡張子
CIS は、コンテンツのキャッシュにファイル拡張子を使用します。 以下のファイル拡張子は自動的にキャッシュされます。
ファイル拡張子 | |||
---|---|---|---|
bmp class css csv doc docx ejs eot eps |
gif ico jar jpg js mid midi otf pdf |
pict pls png ppt pptx ps svg svgz swf |
tif tiff ttf webp woff woff2 xls xlsx |
CIS はMIMEタイプに基づいてコンテンツをキャッシュせず、デフォルトではHTMLページをキャッシュしない。 ただし、ウェブサイトの robots.txt
ファイルを自動的にキャッシュします。 HTMLページなどの追加コンテンツをキャッシュするには、カスタム・ページ・ルールを設定して、何がキャッシュされるかを制御することができる。
不整合コンテンツへの対応
不整合コンテンツ対応は、サーバーの停止時に、限られたバージョンのサイトをオンラインに維持します。 たとえコンテンツの有効期限が切れても、 CIS、オリジン・サーバーがオフラインのときでも、キャッシュされたコンテンツをユーザーに提供し続ける。
CIS キャッシュ・レスポンスを理解する
CF-Cache-Status
ヘッダーの出力には、リソースがキャッシュされたかどうかが示されます。
応答コード | 定義 |
---|---|
HIT |
リソースは CIS キャッシュで見つかった。 |
MISS |
リソースは CIS キャッシュで見つからず、オリジンのウェブサーバーから提供されました。 |
EXPIRED |
このリソースはキャッシュにありましたが、有効期限が切れており、オリジンのウェブサーバーから提供されました。 |
STALE |
リソースはキャッシュから提供されましたが、有効期限が切れています。 CIS 更新されたリソースを取得するためにオリジンにコンタクトできなかった。 |
BYPASS |
オリジンサーバーは、 no-cache 、 private 、または max-age=0 に設定された cache-control ヘッダーを使用して、キャッシュをバイパスするように CIS に指示しました。 BYPASS は、オリジン cache-control を有効にすると返されます。 CIS また、オリジンのWebサーバーがレスポンス・ヘッダーにクッキーを送信する場合、。
BYPASS |
REVALIDATED |
リソースはキャッシュから提供されるが、古くなっている。 リソースは If-Modified-Since ヘッダーまたは If-None-Match ヘッダーによって再検証されました。 |
UPDATING |
リソースはキャッシュから提供されましたが、有効期限が切れています。 リソースはオリジンのウェブサーバーによって更新されている。 UPDATING は通常、人気のあるキャッシュリソースにのみ見られる。 |
DYNAMIC |
リソースはデフォルトではキャッシュされず、現在の CIS キャッシング設定では、 CIS にリソースのキャッシュを指示していません。 代わりに、リソースは起点 Web サーバーに対して要求されました。 ページ・ルールを使用してカスタム・キャッシュ・オプションを実装してください。 |
照会ストリングのソートの使用
Enterpriseのみ : CIS、クエリ文字列の順序が異なるURLは、キャッシュ内の別ファイルとして扱われます。 例えば、あるユーザーがリクエストしたとする:
/video/123456?title=0&byline=0&portrait=0&color=987654
と別のリクエスト:
/video/123456?byline=0&color=987654&portrait=0&title=0
CIS は、すでにキャッシュされていても、オリジンからファイルを再度フェッチする。
クエリ文字列ソート機能は、キャッシュの「前に」クエリ文字列をソートし、キャッシュヒット率を向上させます。 キャッシュページのトグルを使って、クエリー文字列ソートを有効にすることができます。