ユーザーがページから移動してbroswerの戻るボタンを使用したときに戻るときにGETリクエストを避けたいです。これは、FirefoxとChrome(最新バージョン)では特別な処理を行わなくても正常に動作します。バックボタンを使用する:IEとSafariはキャッシュから読み込みません。FirefoxとChromeは同じです。
ただし、戻るボタンを使用して前のページに戻るときに、SafariとIEの両方でGETリクエストが実行されます。
私は、キャッシュの動作(Last-Modified、Expires、Cache-Control)を制御しているヘッダーをうまく使いませんでした。戻るボタンを使用してIEとSafariがページをリロードするのを止める方法はありますか?
典型的なリクエストとレスポンスのヘッダーは、戻るボタンを使用してページを再読み込みするか、アドレスバーにURLを入力すると、IEとSafariで同じです。
リクエストヘッダ
Accept:application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
Accept-Encoding:gzip, deflate
Accept-Language:en-US
Origin:http://165.88.162.245:8000
Referer:http://165.88.162.245:8000/login?next=/
User-Agent:Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/533.21.1 (KHTML, like Gecko) Version/5.0.5 Safari/533.21.1
レスポンスヘッダ
Content-Language:en
Content-Type:text/html; charset=utf-8
Date:Tue, 12 Jul 2011 11:35:31 GMT
Server:WSGIServer/0.1 Python/2.6.6
Set-Cookie:sessionid=0675e1246fe03946c54d2052e7adf0c9; Path=/
Vary:Accept-Language, Cookie
IE9のキャッシングの改善へのリンクをありがとう、それは正しい方向に私を指摘しました。問題は、私がテストしたすべてのIEインカネーションでキャッシングを無効にしたレスポンスの「Vary:cookie」ヘッダーでした。私はVaryヘッダーがなくてもページをリロードするSafariにはまだ問題があります。 – Bernhard
ええ、正しく言えば、Safariはキャッシングディレクティブに関係なく常にトップレベルのページを再要求しますが、サブディストリビューションではそれらのディレクティブを尊重します。 – EricLaw