有什么方法可以强制Firefox不缓存重定向(301和302)?


11

我是一名网络开发人员,在很多情况下我必须创建或更改301或302重定向。在Firefox中测试即时更改是很麻烦的,因为它缓存了重定向,因此,如果我更改了重定向服务器端,然后进行硬刷新,则将缓存旧的重定向,因此,测试新重定向的唯一方法是删除缓存或开始私人浏览器会话。

话虽这么说,解决起来并不是特别困难,但是很烦人,尤其是当我忘记这样做的时候,并且我的新重定向似乎无法正常工作,直到我记得删除缓存或开始新的私有会话。

我了解为正常使用缓存重定向的好处,但是我想出于调试目的禁​​用该行为。

Answers:


8

如果您打开了开发者工具箱面板,则可以设置一个选项来关闭对缓存的查询(如所见F12)。

要设置此选项:

  1. 在任何页面上,单击F12以打开开发人员工具箱面板。
  2. 点击该面板右上角的齿轮图标。
  3. 在那里,检查“高级设置→禁用缓存(打开工具箱时)”。

缓存重定向仍然会从没有开发者工具箱面板开放访问缓存,但缓存没有谘询,而不是更新的,只要开发者工具箱打开。因此,您只是暂时强制Firefox不缓存重定向或从缓存提供重定向,但这对于您的用例就足够了。

在Firefox 41中进行了验证。改编自Ryan Bemrose对另一个问题的回答


2

我完全理解为什么在99%的情况下缓存重定向都是有好处的,但是仍然可以禁用该行为吗?

好吧,如果您是从Web服务器开发的角度进行此操作,那么期望浏览器的“不惜一切代价缓存”行为会因您“无休止的开发调整”需求而改变,这是攻击这种野兽的错误方法。当您正在调试Web服务器重定向,你需要把重点放在检查头输出,而不是完整的页面渲染输出其浏览器提供。

因此,我建议您从命令行学习如何使用curl-I选项,以仅返回标头,这对于调试301和302重定向非常有用。从命令行。如官方curl手册页中所述,-I选项为:

-我/-头

(HTTP / FTP / FILE)仅获取HTTP标头!HTTP服务器具有命令HEAD,该命令用于获取文档的标头。当在FTP或FILE文件上使用时,curl仅显示文件大小和最后修改时间。

例如,执行a 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选项(aka:)添加--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

在Firefox Firebug中,该Net标签下有一个名为“禁用缓存”的选项。我在进行重定向测试时将其打开,否则将其关闭。

在此处输入图片说明


1

about:config和一套既browser.cache.disk.enablebrowser.cache.memory.enable假。这与选中“禁用浏览器缓存”相同。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.