除了301和302以外的重定向 Redirect

投稿作者:小傲世 围观人数:1766 所属分类:网络技术
知识拓展:浏览器首先访问服务器A的URL,服务器A返回带着location为B的URL的 header 和3XX的状态码,浏览器读取响应的3XX状态码,获取到头部的 location,然后跳转到服务器B的URL。

大家首先需要知道的,跳转是浏览器发起的。如果服务器给一个非浏览器的终端返回了 3XX 的状态码,那有可能是无法完成重定向的。

某年,有个应该用已经运行很很长时间了,PHP 写的 API 接口。一直使用的是 HTTP,经常被劫持,然后领导想替换成加密的 HTTPS,但是客户端不能发版。后来服务器端就考虑把全站的接口从 HTTP 302 到 HTTPS,讨论这个方案的可行性。如果知道上面的流程和知识这个方案立马就 PASS 了。

301vs302

一、永久重定向

表示资源永久性的跳转到新的 URL。

一个比较常见的案例就是老站迁移到新站,老站直接关闭后,老站的页面已经被搜索引擎收录了,这个时候使用永久重定向方案。

永久重定向有两个状态码:

301,重定向请求通常会使用 GET 方法,不管原请求使用的是何种方法。
308,为了补充 301.重定向必须使用原请求的方法和包体访问。

二、临时重定向

表示资源只是临时跳转到新的 URL

临时重定向一共有五个状态码:

300,该请求有多种可能的响应,浏览器可以选择它们其中的一个。服务器没有任何标准可以遵循去代替用户来进行选择。

302,重定向请求通常会使用 GET 方法,不管原请求使用的是何种方法。
303,并不表示资源变更,只是表示用新的 URL 的响应代替原请求。不管原请求使用的是何种方法。基本跟 302 一致,所以市面很少用 303,都是使用 302.

304,告诉浏览器,所请求的内容距离上次访问并没有变化。 可以直接从浏览器缓存里获取该资源。

307,为了补充 302.重定向必须使用原请求的方法和包体访问。

展开全文
表白墙

免责声明

本站提供的一切软件、教程和内容信息仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络收集整理,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑或手机中彻底删除上述内容。如果您喜欢该程序和内容,请支持正版,购买注册,得到更好的正版服务。我们非常重视版权问题,如有侵权请邮件与我们联系处理。敬请谅解!

已有次赞
我要评论 0条评论,0条回复
签到 图片评论介绍
请先登录后再评论
作者信息
最新评论
为您推荐
热门标签

登录您的账号