在 HTTP 协议中, 307 Temporary Redirect(临时重定向)是表示重定向的响应状态码,说明请求的资源暂时地被移动到  Location 首部所指向的 URL 上。

原始请求中的请求方法和消息主体会在重定向请求中被重用。在确实需要将重定向请求的方法转换为  GET 的场景下,可以考虑使用 303 See Also 状态码。例如在使用 PUT 方法进行文件上传操作时,需要返回确认信息(例如“你已经成功上传了xyz”)而不是上传的资源本身,就可以使用这个状态码。

状态码 307 与 302 之间的唯一区别在于,当发送重定向请求的时候,307 状态码可以确保请求方法和消息主体不会发生变化。当响应状态码为 302 的时候,一些旧有的用户代理会错误地将请求方法转换为 GET:使用非 GET 请求方法而返回 302 状态码,Web 应用的运行状况是不可预测的;而返回 307 状态码时则是可预测的。对于 GET 请求来说,两种情况没有区别。

状态

307 Temporary Redirect

标准

标准 标题
RFC 7231, section 6.4.7: 307 Temporary Redirect Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content

浏览器兼容性

FeatureChromeEdgeFirefoxInternet ExplorerOperaSafari
Basic support Yes Yes Yes Yes Yes Yes
FeatureAndroid webviewChrome for AndroidEdge mobileFirefox for AndroidIE mobileOpera AndroidiOS Safari
Basic support Yes Yes Yes Yes Yes Yes Yes

更多可见

  • 302 Found, the equivalent of this status code, but that never changes may change the method used when it is not a GET.
  • 303 See Also, a temporary redirect that changes the method used to GET.
  • 301 Found, the temporary redirect

文档标签和贡献者

 此页面的贡献者: WayneCui, ujsxn
 最后编辑者: WayneCui,