No.57


【WEB】スーパーリロード時のHTTPヘッダ

ブラウザがスーパーリロードしたときに送信されてくるHTTPヘッダ

 とある案件にて、ブラウザがスーパーリロードを行った際に確実に最新の情報を送信することが求められた。

 もちろんブラウザ側もそれなりにキャッシュ制御をしてくれるけど、はっきり言ってアテにならないうえに、各ブラウザごとに挙動が異なるのが厄介だ。となるとHTTPヘッダを見てプログラム側で制御するしかない。

 というわけで、実際に各ブラウザからスーパーリロードしたときのHTTPヘッダを確認してみた。


各ブラウザの返却値

 対象とするHTTPヘッダは一般的なCache-ControlPragmaとした。

ブラウザ Cache-Control Pragma
IE11 no-cache
Chrome no-cache no-cache
FireFox no-cache no-cache
Safari no-cache no-cache

 つまり、スーパーリロードされたかの判断は

Cache-Control か Pragma

 に

no-cache

 が含まれているかで判断できる。

 あとは念のため

no-store

 も含まれているか確認して判断すれば良いだろう。


補足:スーパーリロードの操作

ブラウザ OS コマンド
IE11、Chrome、FireFox Windows Ctrl + F5
Safari MacOS Shift + ブラウザの更新ボタン