HTTP 临时重定向302与307的区别与联系

基本信息

302状态码: RFC 7231 - Hypertext Transfer Protocol (HTTP/1.1): Semantics and Contenthttps://datatracker.ietf.org/doc/html/rfc7231#section-6.4.3

307状态码: RFC 7231 - Hypertext Transfer Protocol (HTTP/1.1): Semantics and Contenthttps://datatracker.ietf.org/doc/html/rfc7231#section-6.4.7

302与307的差异: 307 Temporary Redirect - HTTP | MDN原始请求中的请求方法和消息主体会在重定向请求中被重用。在确实需要将重定向请求的方法转换为 GET 的场景下,可以考虑使用 303 See Other 状态码。例如,在使用 PUT 方法进行文件上传操作时,如果需要返回一条确认信息(例如“你已经成功上传了 XYZ”),而不是返回上传的资源本身,就可以使用这个状态码。https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Status/307

简言之,302和307状态码都可用于临时重定向。但是对于有些客户端实现,在收到302状态码时,客户端可能会将请求方法强制修改为"GET";对于307状态码,禁止客户端修改请求方法为"GET"。

curl对重定向的支持情况

curl作为一个非常普遍的测试工具,可以通过 "-L"​ 参数来处理重定向请求。对于非GET请求收到302状态码,在发起重定向请求时,它会将请求方法转换为GET方法。对于307状态码,在发起重定向请求时会仍然使用原始请求中的Method

curl重定向

wget对重定向的支持情况

wget是另一款非常常用的网络下载工具,它对于post请求时收到302,307的处理与curl有差异。

 

参考文档

1. Hypertext Transfer Protocol -- HTTP/1.1

2.Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值