18 | 四通八达:HTTP的重定向和跳转
该思维导图由 AI 生成,仅供参考
- 深入了解
- 翻译
- 解释
- 总结
HTTP的重定向和跳转在万维网构建超链接文档系统中扮演着关键角色。重定向是服务器发起的跳转,通过301和302状态码实现,分别表示永久重定向和临时重定向。本文介绍了重定向的过程、状态码及应用场景,包括资源不可用时的跳转和避免重复访问的处理。理解重定向的工作原理和状态码的含义,可以在服务器端控制浏览器的行为,提供更好的用户体验。文章还提到了重定向可能带来的性能损耗和循环跳转问题,以及301和302状态码的异同点。总的来说,重定向是一个强大的工具,但需要谨慎使用,避免滥用和出现循环跳转。文章内容简洁明了,对HTTP重定向和跳转进行了全面的介绍,适合读者快速了解相关概念和技术特点。
《透视 HTTP 协议》,新⼈⾸单¥59
全部留言(59)
- 最新
- 精选
- 钱之前面试官好像比较喜欢问外部重定向和内部重定向的区别? 外部重定向,服务器会把重定向的地址给浏览器,然后浏览器再次的发起请求,地址栏的地址变化了。 内部重定向,服务器会直接把重定向的资源返给浏览器,不需要再次在浏览器发起请求,地址栏的地址不变。 重定向我的经验,主要用在未登录或者权限不足的场景,跳转到对应的登录或提升页面之中。 当然,通用的SSO也是这样做的。
作者回复: 1.内部重定向对于用户来说成本低,因为只在网站服务器内部跳转,所谓的router。 2.对,这是最常见的应用场景之一。
2020-03-29847 - Geek_5b0e47笔记: 主动跳转:跳转动作是由浏览器的使用者主动发起的; 被动跳转:跳转动作是由服务器发起的,浏览器使用者无法控制。 1、重定向状态码 301:俗称“永久重定向”,原URI已经“永久”性地不存在了,今后的所有请求都必须改用新的URI. 302: 俗称“临时重定向”,原URI处于“临时维护”状态,新的URI是起“顶包”作用的临时工。 303 See Other: 类似302,但要求重定向后的请求改为GET方法,访问一个结果页面,避免POST/PUT重复操作; 307 Temporary Redirect: 类似302,但重定向后请求里的方法和实体不允许变动,含义比302更明确; 308 Permanent Redirect: 类似307,不允许重定向后的请求变动,但它是301“永久重定向”的含义 2、重定向的应用场景 一个最常见的原因就是“资源不可用”,需要用另一个新的URI来代替。 不可用的原因:如域名变更、服务器变更、网站改版、系统维护。 另一个原因就是“避免重复”,让多个网址都跳转到一个URI,增加访问入口的同时还不会增加额外的工作量。如:有的网站会申请多个名称类似的域名,然后把它们重定向到主站上。 3、重定向的相关问题 第一个问题是“性能损耗”。重定向的机制决定了一个跳转会有两次请求-应答,比正常的访问多了一次。 第二个问题是“循环跳转”。如果重定向的策略设置欠考虑,可能会出现“A=>B=>C=>A”的无限循环。
作者回复: great。
2020-03-2717 - 蚂蚁内推+v老师,使用301会比302有较大的性能提升么
作者回复: 对于单次请求来说是没什么差别的,但浏览器会对301做优化,后续的请求就不会再有跳转动作,所以会快一些。
2019-08-1913 - 奕老师,这个301,302, 303重定向要求前后协议一致吗?http不能调转https?
作者回复: 没有要求,当然可以跳转到https。
2019-07-18212 - 夏目1、301用于废弃原地址跳转新地址,302用于暂时无法访问原地址跳转新地址,两者都需要浏览器重新发起一次请求 2、最开始接触重定向的时候就是用于未登录跳转登录页了
作者回复: 说的很好。
2019-12-039 - snake站外重定向就要开两个连接,如果网络连接质量差,那成本可就高多了,会严重影响用户的体验。 ------------》 老师这个我不理解,站外重定向,比如重定向到其他网站,那客户端的连接跟自己的服务端应该就没有什么关系了吧?为什么还有两个连接呢?不是客户端应该跟其他网站的服务器连接吗?
作者回复: 是这样的:首先与本站是一个连接,然后到外站,就必须再开一个连接,这样就是两个连接了,两次tcp握手,对于客户端成本就很高了,当然服务器是无所谓的。
2020-06-228 - lll“另一个原因就是“避免重复”,让多个网址都跳转到一个 URI,增加访问入口的同时还不会增加额外的工作量。”这句话怎么理解呢?
作者回复: 比如说Google就注册了很多的域名,比如goo.gl、g.cn等等,但都指向的是同一个服务,这样对于用户来说就很方便,随便记一个就能访问。
2020-09-1927 - 毛毛重定向和转发的区别和用途,以后章节会讲吗?
作者回复: 你说的“转发”指什么?是代理吗?如果是的话很快就会讲到。
2019-07-0846 - 天方夜从短域名跳长域名(z.cn - www.amazon.cn),从 http 跳 https,分别应当用哪种重定向,有没有最佳实践呢?
作者回复: 我觉得正文里的可以参考,就是看这个跳转是否是“临时”的,如果是永久条件就用301,而跟长短域名、http到https没有特别的关系。
2021-02-204 - 尿布重定向报文里还可以用Refresh字段,实现延时重定向,例如”Refresh: 5; url=xxx“告诉浏览器5秒钟后再跳转 与跳转有关的还有一个”Referer“和”Refereer-Policy“(注意前者是个拼写错误,但已经”将错就错“),表示浏览器跳转的来源(即引用地址),可用于统计分析和防盗链
作者回复: 把重要的信息当做笔记保存起来,这个习惯很好。
2020-09-094