当前位置:首页 > 话题广场 > 攻略专题 > 游戏问答

关于重定向浏览器怎么知道,你需要知道这些重定向Redirect 的常识

今天下班的时候看到重定向的基础,睁开了眼睛。

以前也经常使用301和302,但从来没有使用过和了解过其他的3XX的状态码,发现原来里面涉及的知识和解决的问题的还不少。

重定向的流程

浏览器首先访问服务器A的URL,服务器A返回带着location为B的URL的 header 和3XX的状态码,浏览器读取响应的3XX状态码,获取到头部的 location,然后跳转到服务器B的URL。

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

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

永久重定向

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

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

永久重定向两个状态码

301,重定向请求通常会使用GET方法,不管原请求使用的是何种方法。

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

临时重定向

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

临时重定向一共有五个状态码,常用也就相对应的两个302和307.

302,重定向请求通常会使用GET方法,不管原请求使用的是何种方法。

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

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

百度就是使用的307跳转,浏览器输入 会307 到

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

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

后面两种不常用。

使用比较多就是301 302 307 308

循环重定向的问题

ERRTOOMANY_REDIRECTS

这个报错挺常见的。如果访问A页面然后重定向访问B,然后B又让重定向访问A,这样就是循环重定向了。多次重定向也会报这个错。

生产环境遇到过一次,有一次日志上发现有ERRTOOMANY_REDIRECTS的报错,但是在Nginx的配置上没有找到 3XX的跳转代码啊,那怎么循环跳转的。后来看到了这段配置

location / { try_files $uri $uri / / index . html$is_args$args ; }

后来发现根目录下没有index.html,uri不存在,然后uri/目录也不存在,最后发起一个内部子请求到index.不存在,又到location,反复重定向。最后报错 ERRTOOMANY_REDIRECTS。

1.《关于重定向浏览器怎么知道,你需要知道这些重定向Redirect 的常识》援引自互联网,旨在传递更多网络信息知识,仅代表作者本人观点,与本网站无关,侵删请联系页脚下方联系方式。

2.《关于重定向浏览器怎么知道,你需要知道这些重定向Redirect 的常识》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。

3.文章转载时请保留本站内容来源地址,https://www.lu-xu.com/gl/3160966.html

上一篇

计算机图标是怎么样的看这里!LOGO和图标,你真的了解它们的异同吗?

重定向浏览器怎么知道看这里!史上最全!图解浏览器的工作原理

  • 重定向浏览器怎么知道看这里!史上最全!图解浏览器的工作原理
  • 重定向浏览器怎么知道看这里!史上最全!图解浏览器的工作原理
  • 重定向浏览器怎么知道看这里!史上最全!图解浏览器的工作原理
重定向浏览器怎么知道?我来告诉你答案重定向和请求转发的区别(简单通俗)

重定向浏览器怎么知道?我来告诉你答案重定向和请求转发的区别(简单通俗)

重定向浏览器怎么知道相关介绍,一、呼叫方法 从servlet调用传播、重定向的语句如下: Reque ('new.jsp ')。forward (request、response);//转发到new.jsp re(...