HTTP的重定向和跳转

主动跳转:跳转动作是由浏览器的使用者主动发起的;
被动跳转:跳转动作是由服务器发起的,浏览器使用者无法控制。

重定向状态码

  • 301:俗称“永久重定向”,原URI已经“永久”性地不存在了,今后的所有请求都必须改用新的URI.

  • 302: 俗称“临时重定向”,原URI处于“临时维护”状态,新的URI是起“顶包”作用的临时工。

  • 303 See Other: 类似302,但要求重定向后的请求改为GET方法,访问一个结果页面,避免POST/PUT重复操作;

  • 307 Temporary Redirect: 类似302,但重定向后请求里的方法和实体不允许变动,含义比302更明确;

  • 308 Permanent Redirect: 类似307,不允许重定向后的请求变动,但它是301“永久重定向”的含义。

重定向的应用场景

什么时候需要重定向?

一个最常见的原因就是“资源不可用”,需要用另一个新的URI来代替。
不可用的原因:如域名变更、服务器变更、网站改版、系统维护。

另一个原因就是“避免重复”,让多个网址都跳转到一个URI,增加访问入口的同时还不会增加额外的工作量。如:有的网站会申请多个名称类似的域名,然后把它们重定向到主站上。

301的含义是“永久”的,如果域名、服务器、网站架构发生了大幅度的改变,比如启用了新域名、服务器切换到了新机房、网站目录层次重构,这些都算是“永久性”的改变,原来的URI已经不能用了,必须用301“永久重定向”,通知浏览器和搜索引擎更新到新地址。

302的含义是“临时”的。原来的URI在将来的某个时间点还会恢复正常,常见的应用场景就是系统维护,把网站重定向到一个通知页面,告诉用户过一会儿再来访问。另一种用法就是“服务降级”,比如双十一促销的时候,把订单查询、领积分等不重要的功能入口暂时关闭,保证核心服务能够正常运行。

重定向的相关问题

第一个问题是“性能损耗”。重定向的机制决定了一个跳转会有两次请求-应答,比正常的访问多了一次。

第二个问题是“循环跳转”。如果重定向的策略设置欠考虑,可能会出现“A=>B=>C=>A”的无限循环。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值