HTTP中的301、302、303、307、308

本文详细解析了HTTP中的301、302、303、307和308状态码,它们代表不同类型的重定向。301和308是永久重定向,302、303、307是临时重定向。301、302在HTTP/1.0中定义,303、307在HTTP/1.1中为了解决302的二义性而引入,308则不允许POST请求变为GET。302和307在浏览器实现中存在差异,可能导致安全问题如302劫持。
摘要由CSDN通过智能技术生成

1. RFC协议规范

  • 301 Moved Permanently,永久重定向
  • 302 Found
  • 303 See Other
  • 307 Temporary Redirect
  • 308 Permanent Redirect 永久重定向

2. 基本结论

  • 3XX开头的HTTP状态码都表示重定向的响应。
  • 301、308是永久重定向;302、303、307是临时重定向。
  • 301、302是http 1.0的内容,303、307、308是http1.1的内容。
  • 301和302本来在http/1.0规范中是不允许重定向时改变请求method的(将POST改为GET),实际许多浏览器实现的时候允许重定向时改变请求method。这就出现了规范和实现不一致的问题
  • 302,303,307的出现,都是基于HTTP/1.1兼容HTTP/1.0规范和实现的差异性;
    • 303的出现是允许重定向时改变请求method
    • 307、308则不允许重定向时改变请求method
    • 此外303响应禁止被缓存。

3. HTTP/1.0

301

        301状态码在HTTP 1.0和HTTP 1.1规范中均代表永久重定向,对于资源请求,原来的url和响应头中location的url而言,资源应该对应location中的url。对于post请求的重定向,还是需要用户确认之后才能重定向&

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值