HTTP 307重定向在firefox中不起作用

HTTP 307重定向在firefox中不起作用,http,firefox,redirect,Http,Firefox,Redirect,我们有一个定制的Web服务器,用C编写 当浏览器访问该页面时 我们的Web服务器将通过向浏览器发送http 307响应,将浏览器重定向到mydomain.com:30001/login.html,然后浏览器将访问登录url 这在IE 8和Chrome中运行良好 但在firefox(18+)中,当访问页面时 浏览器无法加载页面(/index.html或/login.html),并且似乎永远处于加载过程中。(firebug>网络面板不显示任何内容。) 我还尝试了firefox设置 工具>选项>高级>

我们有一个定制的Web服务器,用C编写

当浏览器访问该页面时

我们的Web服务器将通过向浏览器发送http 307响应,将浏览器重定向到mydomain.com:30001/login.html,然后浏览器将访问登录url

这在IE 8和Chrome中运行良好

但在firefox(18+)中,当访问页面时

浏览器无法加载页面(/index.html或/login.html),并且似乎永远处于加载过程中。(firebug>网络面板不显示任何内容。)

我还尝试了firefox设置

工具>选项>高级>常规:辅助功能:[“网站尝试重定向或重新加载页面时警告我”

但没有任何效果,也没有任何改变

所以我想知道为什么firefox表现不同,或者还有其他原因

更新:以下是wireshark中捕获的firefox HTTP部分

1.请求(在浏览器地址栏中访问时)

GET/index.html HTTP/1.1
主机:mydomain.com:30001
用户代理:Mozilla/5.0(Windows NT 6.1;WOW64;rv:19.0)Gecko/20100101 Firefox/19.0
接受:text/html、application/xhtml+xml、application/xml;q=0.9,/;q=0.8
接受语言:zh cn,zh;q=0.8,在美国;q=0.5,en;q=0.3
接受编码:gzip,放气
DNT:1
连接:保持活力

2.回应

HTTP/1.1 307临时重定向
连接:保持活动状态
位置:/login.html


仅此而已,firefox不会通过另一个请求获取/login.html。

这里有一个307的测试用例,它与firefox一起工作:。您必须找出服务器的不同之处。

这里有一个307与Firefox兼容的测试用例:。您必须找出服务器中的不同之处。

通过比较来自其他服务器的响应,看起来就像添加

内容长度:0

在响应标题中解决了问题。谢谢

根据协议,如果没有给出内容长度,则可以通过连接关闭来确定内容长度

我的原始响应没有提供内容长度,这意味着浏览器正在等待此响应的传输结束,以了解正确的长度,但设置Connection:keep alive不会结束此连接

我猜IE或Chrome会马上开始重定向处理 它知道这是一个307重定向,而firefox直到它发布后才这么做
完成此响应的阅读

通过比较来自其他服务器的响应,它看起来像是通过添加

内容长度:0

在响应标题中解决了问题。谢谢

根据协议,如果没有给出内容长度,则可以通过连接关闭来确定内容长度

我的原始响应没有提供内容长度,这意味着浏览器正在等待此响应的传输结束,以了解正确的长度,但设置Connection:keep alive不会结束此连接

我猜IE或Chrome会马上开始重定向处理 它知道这是一个307重定向,而firefox直到它发布后才这么做 完成此响应的阅读