HTTP重定向代码之间的差异?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (14)

301重定向代码似乎很清楚:这意味着资源已被永久移动到另一个URI,以及将来的请求应使用URI。

307重定向代码也似乎很清楚:它意味着重定向是暂时的,将来的请求应该仍然使用原来的URI。

但是我不知道302和303的区别

提问于
用户回答回答于
  • 301:永久重定向。随后请求这个资源的客户端应该使用新的URI。客户端不会自动执行重定向的POST / PUT / DELETE请求。
  • 302:重定向为未定义的原因。客户端使这一资源应该后续请求不使用新的URI。客户应不会自动执行重定向的POST / PUT / DELETE请求。
  • 303:重定向为未定义的原因。通常情况下,“操作已完成,在其他地方继续”。客户端使这一资源应该后续请求不使用新的URI。客户端应该遵循POST / PUT / DELETE请求的重定向,但是对于后续请求使用GET。
  • 307:临时重定向。资源可能会在稍后返回到此位置。随后请求此资源的客户端应使用旧的URI。客户应不会自动执行重定向的POST / PUT / DELETE请求。

用户回答回答于

303和307之间的区别在于:

303:该请求被正确接收,但结果应该使用重定向url上的GET进行检索。

307:临时重定向。整个请求应该重定向到新的url。任何帖子数据都应该重新发布。

302具有307的行为,但大多数浏览器将其显示为303。

301和303之间的区别:

301:文档被移动。未来的请求应该使用新的url。此网址已过时。

303:请求被正确接收。有PUT请求被处理了。生成的文档可以从重定向URL来检索。未来的请求仍应该转到原始网址。

扫码关注云+社区