ブラウザで JavaScript を無効にしているときに戻るボタンの機能に関連する、Mac OSX システムでの Safari/Webkit の「奇妙な」動作に関して問題があります。
私が持っているシナリオは、ログインが成功するとユーザーをページ1に導くログインページで構成されるWebアプリケーションです。ユーザーが page1 からログアウトすると、page2 にリダイレクトされます。page1 へのセッション外および認証されていないリクエストは、302 HTTP レスポンスを介して最初のログイン ページにリダイレクトされます。
また、page1 へのリクエストへのレスポンスには、ブラウザがページをキャッシュするのを防ぐために、次の HTTP ヘッダーが存在することにも言及する価値があります。
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Expires: Thu, 1 JAN 1970
Pragma: no-cache
page1 から正常にログアウトすると、ユーザーは page2 にリダイレクトされます。この時点でユーザーが [戻る] ボタンをクリックすることを決定した場合、ブラウザーはサーバーに再度アクセスして新しいコピーを取得するのではなく、キャッシュからページ 1 を読み込みます。これはすべて、Safari 内で JavaScript が無効になっている間に発生することに注意してください。JavaScript を有効にすると、Web サーバーから page1 をリロードするという期待される結果が生成され、ユーザーは最初のログイン ページにリダイレクトされます。
ページ body タグに unload イベント ハンドラを設定して、Webkit がそのページ キャッシュにページをロードしないようにしようとしましたが、問題は解決していないようです。
他の主流のブラウザーである FF、IE、および Chrome は、JS と非 JS の両方の状況で期待される結果を生成するようです。
ここに何か欠けているのでしょうか、それとも Safari/WebKit のバグのように聞こえますか?
乾杯;