web-dev-qa-db-ja.com

302リダイレクトはブラウザにどのくらいの期間保存されますか?

ウェブサーバーの設定ミスにより、メインドメインが新しい場所に302リダイレクトを送信しました。その問題を修正しました。ブラウザのキャッシュを空にすると、すべてが正常に動作するようになりました。

キャッシュを空にしない「通常の」クライアントの場合:302リダイレクトはブラウザにどのくらい保持されますか?

デフォルトで各主要ブラウザ(Chrome、Firefox、Safari、Opera、Edge、IE 12))ごとに特定のキャッシュ時間(ある場合)を探しています設定。

25
Ole Albers

Webサーバーから返されたCache-ControlまたはExpiresヘッダーもない限り、キャッシュされるべきではありません。 RFC 2616によると、セクション10.3.3 302が見つかりました

リクエストされたリソースは一時的に別のURIに存在します。リダイレクトは時々変更される可能性があるため、クライアントは今後のリクエストに引き続きRequest-URIを使用する必要があります(SHOULD)。この応答は、Cache-ControlまたはExpiresヘッダーフィールドで示されている場合にのみキャッシュ可能です。

29
Jon Lin

ここでJon Linが参照する標準は、「SHOULD」を使用します。これは、RFC用語では 「MUST」ほど強くない です。これは単なる理論上の違いではありません。 Cloudflare、たとえば doescache redirects

キャッシュヘッダーが提供されておらず(Cache-ControlまたはExpiresがなく)、URLがキャッシュ可能な場合(.jpg、.css、.jsなど)、CloudFlareは301と302の両方をキャッシュします。 301を数時間キャッシュし、302をより短い時間(〜20分)キャッシュします。

したがって、確実に処理できるようにするか、明示的なヘッダーを使用する必要があります(例:Cache-Control: private, no-cache)ブラウザと中間体にキャッシュを指示しないようにします。

14
mahemoff

Steve Sounderの リダイレクトキャッシュテストツール (@LeonidVasilevに感謝)を使用すると、期待した結果が得られない可能性があります。有効期限ヘッダーやCookieがない場合、結果は次のようになります。

Chrome 71:キャッシュされません✔
Firefox 64:キャッシュ✕
Safari 12:キャッシュ✕

したがって、 RFC 2616、セクション10.3.3 302が見つかりました の状態にかかわらず、すべてのブラウザがこれらのガイドラインに従うとは限りません。

4
Chuck Le Butt

Firefox

bug 812167 ごとにキャッシュされるべきではありません

0
benc

これは、個々のクライアントのブラウザキャッシング設定に依存します。IEには、新しいページを「絶対に」チェックするオプションがあり、リダイレクトに対して同じ効果があります。
そしてAFAIR IEの「自動」設定(デフォルト?)はそれほど良くありません。

0