web-dev-qa-db-ja.com

Firefoxにリダイレクト(301と302)をキャッシュさせない方法はありますか?

私はWeb開発者であり、301または302リダイレクトを作成または変更しなければならないことがよくあります。リダイレクトをキャッシュするため、Firefoxですぐに変更をテストするのは面倒です。リダイレクトをサーバー側で変更してからハードリフレッシュすると、古いリダイレクトがキャッシュされます。新しいリダイレクトをテストするには、キャッシュを削除するしかありません。またはプライベートブラウザセッションを開始します。

そうは言っても、回避することは特に難しくありませんが、特に私がそうするのを忘れたときは、面倒です。キャッシュを削除するか、新しいプライベートセッションを開始するまで、新しいリダイレクトが機能しないようです。

通常の使用のためにリダイレクトをキャッシュすることが有益である理由は理解していますが、デバッグ目的でこの動作を無効にしたいと思います。

11
chiliNUT

開発者ツールボックスのパネルを開いている場合は、キャッシュの参照をオフにするオプションを設定できます(これは F12)。

このオプションを設定するには:

  1. どのページでも、 F12 開発者ツールボックスパネルを開きます。
  2. そのパネルの右上にある歯車のアイコンをクリックします。
  3. そこで、「詳細設定→キャッシュを無効にする(ツールボックスが開いている場合)」をチェックします。

キャッシュリダイレクトは、開発者ツールボックスパネルが開いていない訪問からもキャッシュされますが、そのキャッシュは参照されず、更新されません限り開発者ツールボックスが開いています。つまり、あなただけtemporarily Firefoxがリダイレクトをキャッシュしないか、キャッシュからリダイレクトを提供しないように強制しますが、それはあなたのユースケースには十分かもしれません。

Firefox 41で検証済み。 Ryan Bemroseの回答 から別の質問に適応。

8
tanius

Firefox FirebugのNetタブの下に、「キャッシュを無効にする」というオプションがあります。リダイレクトテストを行うときにこれをオンにし、それ以外の場合はオフにします。

enter image description here

2
chiliNUT

99%の状況でリダイレクトをキャッシュすることが有益である理由を完全に理解していますが、とにかくその動作を無効にする方法はありますか?

ええと、Webサーバー開発の観点からこれを行っている場合、「無限の開発微調整」のニーズに合わせてブラウザの「すべてのコストでキャッシュ」の動作が変更されることを期待することは、この獣を攻撃する間違った方法です。 Webサーバーのリダイレクトをデバッグするときは、ブラウザーが提供するフルページレンダリング出力ではなく、ヘッダー出力のチェックに集中する必要があります。

したがって、代わりに、コマンドラインから curl-Iオプションを使用して、301と302リダイレクトのデバッグに非常に役立つヘッダーのみを返す方法を学ぶことをお勧めします。コマンドラインから。公式のcurl manページで説明されているように、-Iオプションは次のとおりです。

-I /-head

(HTTP/FTP/FILE)HTTPヘッダーのみを取得します! HTTPサーバーはコマンドHEADを使用してドキュメントのヘッダーのみを取得します。FTPまたはFILEファイルで使用すると、curlはファイルサイズと最終変更時刻のみを表示します。

たとえば、curl -I google.comを実行すると、出力は次のようになります。

HTTP/1.1 301 Moved Permanently
Location: http://www.google.com/
Content-Type: text/html; charset=UTF-8
Date: Sat, 11 Apr 2015 04:37:42 GMT
Expires: Mon, 11 May 2015 04:37:42 GMT
Cache-Control: public, max-age=2592000
Server: gws
Content-Length: 219
X-XSS-Protection: 1; mode=block
X-Frame-Options: SAMEORIGIN
Alternate-Protocol: 80:quic,p=0.5

ヘッダーを介してリダイレクトチェーン全体を追跡する場合は、-Lオプション(別名:--location)を次のようなコマンドに追加します。

curl -I -L google.com

そして、ロケーションリダイレクトチェーンに続くそのコマンドの出力は、次のようになります。

HTTP/1.1 301 Moved Permanently
Location: http://www.google.com/
Content-Type: text/html; charset=UTF-8
Date: Sat, 11 Apr 2015 04:48:14 GMT
Expires: Mon, 11 May 2015 04:48:14 GMT
Cache-Control: public, max-age=2592000
Server: gws
Content-Length: 219
X-XSS-Protection: 1; mode=block
X-Frame-Options: SAMEORIGIN
Alternate-Protocol: 80:quic,p=0.5

HTTP/1.1 200 OK
Date: Sat, 11 Apr 2015 04:48:14 GMT
Expires: -1
Cache-Control: private, max-age=0
Content-Type: text/html; charset=ISO-8859-1
Set-Cookie: PREF=ID=69d90e4d7a0fcbbb:FF=0:TM=1428727694:LM=1428727694:S=1xqS-toEoa5saQ7n; expires=Mon, 10-Apr-2017 04:48:14 GMT; path=/; domain=.google.com
Set-Cookie: NID=67=pkHjv88MsTB_eB1OqqcMm03kTkFNOSaN4ZEiE5iGViEt7AiJWBc6R-0qJ5s1xu3i5Peg5aHOBHyr7n4-oAxyEE2cL_dBPRLYODst0H-Ztfgrf_6LYXXlix9eghSB8Hzc; expires=Sun, 11-Oct-2015 04:48:14 GMT; path=/; domain=.google.com; HttpOnly
P3P: CP="This is not a P3P policy! See http://www.google.com/support/accounts/bin/answer.py?hl=en&answer=151657 for more info."
Server: gws
X-XSS-Protection: 1; mode=block
X-Frame-Options: SAMEORIGIN
Alternate-Protocol: 80:quic,p=0.5
Transfer-Encoding: chunked
Accept-Ranges: none
Vary: Accept-Encoding

HTTP/1.1 301 Moved PermanentlyおよびLocation: http://www.google.com/のヘッダー応答に注意してください。 Web開発の目標がApacheの書き換えルールやリダイレクトなどをテストすることである場合、curl -Iは微調整が何をしているかを確認するのに役立つ最良のツールです。

そして、これらの微調整が完了して完成したら、実際のブラウザーで最終的な実行を行い、すべてが実現することを確認します。

2
JakeGould

about:configに移動し、browser.cache.disk.enablebrowser.cache.memory.enableの両方をfalseに設定します。これは、「ブラウザキャッシュを無効にする」をチェックすることと同じです。

1
Qian