ブログ - iPhoneのSafariでリロードされる
iPhoneのSafariで複数のタブを開いてみていると,暫く経ったり一旦別のアプリケーションに切り替えてSafariに戻って来た後,リロードされるのがウザイ.
移動中で通信環境が悪くて遅いと真っ白な画面を見続けることになる.別にリロードしなくても良いのに...
これはSafariが悪いのではなくて,Webサーバ側が記事の賞味期限を設定しているからでしょう.それでちょっとどんなもんか調べてみた.
移動中で通信環境が悪くて遅いと真っ白な画面を見続けることになる.別にリロードしなくても良いのに...
これはSafariが悪いのではなくて,Webサーバ側が記事の賞味期限を設定しているからでしょう.それでちょっとどんなもんか調べてみた.
自分が一番リロードされてウザイ(つまりよく見てる)のが日本経済新聞のサイト.ここのHTTP HEADERを確認してみる.
こんな感じで調べてみた.
http://japan.cnet.com/
Cache-Control: max-age=120
http://headlines.yahoo.co.jp
Cache-Control: private
なんだか様々だな.それぞれの意味を調べてみた.
Cache-Control: no-cache
キャッシュされたコンテンツが古く無いことを確認しろ
Cache-Control: no-store
キャッシュするな.
Cache-Control: must-revalidate
キャッシュに記録されているコンテンツが有効かどうか問い合わせろ.
Cache-Control: proxy-revalidate
中間にあるキャッシュサーバに,キャッシュの有効性を確認しろと.
Cache-Control: max-age=120
キャッシュの有効性の再確認を120秒間しなくて良い.
Cache-Control: private
他のユーザと共有されない様にキャッシュ.
できるだけ最新の情報を参照してほしいので,これらのキャッシュ設定がサーバ側で行われていて,それをSafariが実践しているわけですな.Cache-Controlが無くてもexpiresでコントロールしているのも在るので,このヘッダを取る様に設定したプロキシを使って通信すれば良いのではないかと思うのだけれど.
こんな感じで調べてみた.
mac:~ ujp$ curl --head --silent http://www.nikkei.com/|grep Cache-Control
Cache-Control: no-cache,no-store,must-revalidate,proxy-revalidate
mac:~ ujp$
http://japan.cnet.com/
Cache-Control: max-age=120
http://headlines.yahoo.co.jp
Cache-Control: private
なんだか様々だな.それぞれの意味を調べてみた.
Cache-Control: no-cache
キャッシュされたコンテンツが古く無いことを確認しろ
Cache-Control: no-store
キャッシュするな.
Cache-Control: must-revalidate
キャッシュに記録されているコンテンツが有効かどうか問い合わせろ.
Cache-Control: proxy-revalidate
中間にあるキャッシュサーバに,キャッシュの有効性を確認しろと.
Cache-Control: max-age=120
キャッシュの有効性の再確認を120秒間しなくて良い.
Cache-Control: private
他のユーザと共有されない様にキャッシュ.
できるだけ最新の情報を参照してほしいので,これらのキャッシュ設定がサーバ側で行われていて,それをSafariが実践しているわけですな.Cache-Controlが無くてもexpiresでコントロールしているのも在るので,このヘッダを取る様に設定したプロキシを使って通信すれば良いのではないかと思うのだけれど.