http 301 302 303 307 308 傻傻分不清

Posted 柳清风09

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了http 301 302 303 307 308 傻傻分不清相关的知识,希望对你有一定的参考价值。

http的重定向我们经常是张口就来,“小明,在nginx上做一个重定向就行了”。整个流程非常简单,服务端HTTP返回码是30x,头里面的Location字段代表新的URL。如下图所示:

但重定向也还是有需要深入探讨地方,返回码不仅有我们经常使用301和303还有302 307 308 它们有啥区别呢。可以按照是否缓存和重定向方法,两个维度去拆分。

缓存(永久重定向)不缓存(临时重定向)
转GET301302、303
方法保持308307

如果是永久重定向那么浏览器客户端就会缓存此次重定向结果,下次如果有请求则直接从缓存读取,譬如我们切换域名,将所有老域名的流量转入新域名,可以使用永久重定向。
如果只是临时重定向那么浏览器则不会缓存,譬如我们的服务临时升级,会使用临时重定向。

方法保持的意思是原请求和重定向的请求是否使用相同的方法,譬如原请求是POST提交一个表单,如果是301重定向的话,重定向的请求会转为GET重新提交,如果是308则会保持原来POST请求不变。

以上是关于http 301 302 303 307 308 傻傻分不清的主要内容,如果未能解决你的问题,请参考以下文章

HTTP 的重定向301,302,303,307(转)

301,302,303,307重定向区别

CTFShow代码审计

HTTP状态码302,303,307间的那些事

http状态吗307,303,302的区别

http状态吗307,303,302的区别