Chrome ブラウザで 301 リダイレクトを cache させない方法をご紹介します。
問題の経緯としては、Web サービスの短縮 URL 機能において、以下の手順で問題が発生しました。
上記の記事のとおりに、ブラウザキャッシュを削除しましょう。
要件を満たせるなら 301 ではなく、302, 307 を使うことで browser cache を回避することができます。
例えば、HTTP ヘッダーを
Cache-Control: no-cache, no-store, must-revalidate
Pragma: no-cache
のように指定しても Chrome は Browser Cache する使用になっています。理由は、以下の引用文のとおりです。
Note that HTTP 301 is Moved Permanently so caching the response is perfectly allowed. If you don't want the response to be cached, try 302 or 307. en.wikipedia.org/wiki/List_of_HTTP_status_codes#3xx_Redirection - WikipediaRef: web development - How can I make Chrome stop caching redirects? - Super User
301 Moved Permanently は恒久的にリダイレクトする HTTP レスポンスステータスコードなので、そもそも redirect 先が変わることがあるケースに適していません。そのような場合は、一時的に変更されたことを示す 302 Found か 307 Temporary Redirect を使うべきというわけです。
以上、Chrome ブラウザで 301 リダイレクト cache 問題を解決したい、現場からお送りしました。