1. このページの目的
キャッシュのテストを行う。
2. デモ
このページでは、常に以下のレスポンスヘッダを返している。
cache-control: max-age=172800
expires: { 現在時刻に上の max-age を足した時刻 }
以下は現在のタイムスタンプを出力している。キャッシュが使用された場合、以下のタイムスタンプは変わらない。
現在のタイムスタンプ:
(1) GETメソッドでこのページを読み込む
ここをクリックしてください。(2) POSTメソッドでこのページを読み込む
3. メモ
- Chrome DevTools [Network]パネルの [Size] 列を見れば、キャッシュが使われているか分かる。キャシュの場合「(disk cache)」と表示される。Firefoxの場合は、[ネットワーク]パネルの [転送量]列に「キャッシュ」と表示される。
- このWebサイトを動かしているレンタルサーバー側によって、デフォルトで Cache-Control: が出力されていたので、htaccess で unset して止めてある。代わりにPHPを使って自分で出力している。
- Cacheable (キャッシュ可能) | MDN にあるように、(仕様上)POSTのレスポンスもキャッシュできるが、ほとんど(のブラウザで)実装されていないらしい。
- POSTへのレスポンスはキャッシュされないので、その直後のGETリクエストに対してそのPOSTへのレスポンスが使われないことは当然だが、それより前のGETに対するレスポンスも(キャッシュとして)使われない。