本文主要是介绍http 301 302 303 307 308 傻傻分不清,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
http的重定向我们经常是张口就来,“小明,在nginx上做一个重定向就行了”。整个流程非常简单,服务端HTTP返回码是30x,头里面的Location字段代表新的URL。如下图所示:
但重定向也还是有需要深入探讨地方,返回码不仅有我们经常使用301和303还有302 307 308 它们有啥区别呢。可以按照是否缓存和重定向方法,两个维度去拆分。
缓存(永久重定向) | 不缓存(临时重定向) | |
---|---|---|
转GET | 301 | 302、303 |
方法保持 | 308 | 307 |
如果是永久重定向那么浏览器客户端就会缓存此次重定向结果,下次如果有请求则直接从缓存读取,譬如我们切换域名,将所有老域名的流量转入新域名,可以使用永久重定向。
如果只是临时重定向那么浏览器则不会缓存,譬如我们的服务临时升级,会使用临时重定向。
方法保持的意思是原请求和重定向的请求是否使用相同的方法,譬如原请求是POST提交一个表单,如果是301重定向的话,重定向的请求会转为GET重新提交,如果是308则会保持原来POST请求不变。
这篇关于http 301 302 303 307 308 傻傻分不清的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!