HTTP的重定向

    URL 重定向,也称为 URL 转发,是一种当实际资源,如单个页面、表单或者整个 Web 应用被迁移到新的 URL 下的时候,保持(原有)链接可用的技术。HTTP 协议提供了一种特殊形式的响应—— HTTP 重定向(HTTP redirects)来执行此类操作,该操作可以应用于多种多样的目标:网站维护期间的临时跳转,网站架构改变后为了保持外部链接继续可用的永久重定向,上传文件时的表示进度的页面,等等。

    在 HTTP 协议中,重定向操作由服务器通过发送特殊的响应(即 redirects)而触发。HTTP 协议的重定向响应的状态码为 3xx 。浏览器在接收到重定向响应的时候,会采用该响应提供的新的 URL ,并立即进行加载;大多数情况下,除了会有一小部分性能损失之外,重定向操作对于用户来说是不可见的。

不同类型的重定向映射可以划分为三个类别:永久重定向、临时重定向和特殊重定向。

 

Link to section永久重定向

这种重定向操作是永久性的。它表示原 URL 不应再被使用,而应该优先选用新的 URL。搜索引擎机器人会在遇到该状态码时触发更新操作,在其索引库中修改与该资源相关的 URL 。

编码含义处理方法典型应用场景
301Moved PermanentlyGET 方法不会发生变更,其他方法有可能会变更为 GET 方法。[1]网站重构。
308Permanent Redirect方法和消息主体都不发生变化。网站重构。with non-GET links/operations(?)

[1] 该规范无意使方法发生改变,但在实际应用中用户代理会这么做。 308 状态码被创建用来消除在使用非 GET 方法时的歧义行为。

Link to section临时重定向

有时候请求的资源无法从其标准地址访问,但是却可以从另外的地方访问。在这种情况下可以使用临时重定向。搜索引擎不会记录该新的、临时的链接。在创建、更新或者删除资源的时候,临时重定向也可以用于显示临时性的进度页面。

编码含义处理方法典型应用场景
302FoundGET 方法不会发生变更,其他方法有可能会变更为 GET 方法。[2]由于不可预见的原因该页面暂不可用。在这种情况下,搜索引擎不会更新它们的链接。
303See OtherGET 方法不会发生变更,其他方法会变更为 GET 方法(消息主体会丢失)。用于PUTPOST 请求完成之后进行页面跳转来防止由于页面刷新导致的操作的重复触发。
307Temporary Redirect方法和消息主体都不发生变化。由于不可预见的原因该页面暂不可用。在这种情况下,搜索引擎不会更新它们的链接。当站点支持非 GET 方法的链接或操作的时候,该状态码优于 302 状态码。

[2] 该规范无意使方法发生改变,但在实际应用中用户代理会这么做。 307 状态码被创建用来消除在使用非 GET 方法时的歧义行为。

Link to section特殊重定向

除了上述两种常见的重定向之外,还有两种特殊的重定向。304 (Not Modified,资源未被修改)会使页面跳转到本地缓存的版本当中(该缓存已过期(?)),而 300 (Multiple Choice,多项选择) 则是一种手工重定向:以 Web 页面形式呈现在浏览器中的消息主体包含了一个可能的重定向链接的列表,用户可以从中进行选择。

编码含义典型应用场景
300Multiple Choice不会太多:所有的选项在消息主体的 HTML 页面中列出。也可以返回 200 OK 状态码。
304Not Modified缓存刷新:该状态码表示缓存值依然有效,可以使用。

 

应用场景

有以下几种应用场景可以使用重定向机制,但是需要注意应该尽可能地限制其使用数量,因为每一次重定向都会带来性能上的开销。

Link to section域名别称

理想情况下,一项资源只有一个访问位置,也就是只有一个 URL 。但是由于种种原因,需要为资源设定不同的名称(即不同的域名,例如带有和不带有 www 前缀的URL,以及简短易记的 URL 等)。在这种情况下,实用的方法是将其重定向到那个实际的(标准的)URL,而不是复制资源。

在以下几种情况下可以使用域名别称:

  • 扩大站点的用户覆盖面。一个常见的场景是,假如站点位于  www.example.com  域名下,那么通过  example.com 也应该可以访问到。这种情况下,可以建立从 example.com 的页面到  www.example.com 的重定向映射。此外还可以提供常见的同义词,或者该域名容易导致的拼写错误的域名别称。
  • 迁移到另外一个域名。例如,公司改名后,你希望用户在搜索旧名称的时候,依然可以访问到应用了新名称的站点。
  • 强制使用 HTTPS 协议。对于 HTTP 版本站点的请求会被重定向至采用了 HTTPS 协议的版本。

Link to section保持链接有效

当你重构 Web 站点的时候,资源的 URL 会发生改变。即便是你可以更新站点内部的链接来适应新的命名体系,但无法控制被外部资源使用的 URL 。你并不想因此而使旧链接失效,因为它们会为你带来宝贵的用户(并且帮助优化你的SEO),所以需要建立从旧链接到新链接的重定向映射。

即便是这项技术可以同样应用于内部链接,但是应该尽量避免内部重定向映射。重定向机制会带来相当大的性能开销(相当于一次额外的请求),所以如果你可以通过修复链接来避免的话,那么就应该将其修复。

Link to section对于不安全请求的临时响应

不安全(Unsafe)请求会修改服务器端的状态,应该避免用户无意的重复操作。一般地,你并不想要你的用户重复发送  PUTPOST 或 DELETE 请求。假如你仅仅为该类请求返回响应的话,简单地点击刷新按钮就会(可能会有一个确认信息)导致请求的重复发送。

在这种情况下,服务器可以返回一个 303 (See Other) 响应,其中含有合适的响应信息。如果刷新按钮被点击的话,只会导致该页面被刷新,而不会重复提交不安全的请求。

Link to section对于耗时请求的临时响应

一些请求的处理会需要比较长的时间,比如有时候 DELETE 请求会被安排为稍后处理。在这种情况下,会返回一个 303 (See Other)  重定向响应,该响应链接到一个页面,表示请求的操作已经被列入计划,并且最终会通知用户操作的进展情况,或者允许用户将其取消。

 

转载: https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Redirections#%E5%8E%9F%E7%90%86

全内重定向路径分析器。HTTP报头、Rel-Canonicals机器人。txt, link power, trust and risk analysis, too! 多合一重定向路径分析器。 HTTP标头,Rel-Canonicals,robots.txt,链接能力,信任和风险也进行了分析! 对链接,重定向和REL标准进行高级,全面且最重要的正确分析。 使用此扩展程序进行SEO分析,页面SEO,关闭页面SEO,竞争对手分析等。 立即查看如果页面在robots.txt或X-Robots-Tags中被阻止,其上具有NOINDEX / NOFOLLOW标签或其他技术问题(例如Bot特定的阻止)是否被跳转。 您还可以查看每个重定向跃点上放置的所有cookie。 您可以查看每个链接和重定向页面的强度,并为每个重定向跃点分析“ LRT功率*信任”(例如Google PageRank的功率和“信任等级”之类的信任。不久之后,您将能够看到“链接排毒风险:registered:”重定向路径中的每个跃点,从而避免了您将Google罚款重定向到您的站点而又不知道它来自何处。此扩展程序旨在替代所有其他“部分解决方案”扩展程序,用于重定向,规范,搜索引擎索引编制和HTTP标头记录坦率地说,每一个可用的功能都只是一部分(有时甚至是错误的或不完整的),因此我们决定正确地构建它。“ LRT链接重定向跟踪”作为一站式解决方案来替代所有其他扩展,意味着您可以获得每次重定向时都有完整的图片。与您使用的任何内容并行测试我们,您会惊讶地发现或发现的更好的东西-现有扩展隐藏的内容完整说明链接重定向是一个过程,其中一个URL被转发到另一个网址。 如果一个陌生的域名正在重定向到您,则应更详细地检查此案例,并确定这是否是一个有价值的网站或是否在损害您的利益。 是否正在寻找一种在浏览时跟踪重定向和标头的有效方法? 我们构建了一个多合一浏览器扩展程序,以帮助您跟踪可以想到的任何重定向。 输入链接重定向跟踪。 重定向跟踪是在线营销和SEO中的每个人都应该关注的事情。 典型的反向链接配置文件通常包括来自其他网站的重定向重定向有多种类型,每种重定向都会向Google传递不同数量的Link Juice。 链接重定向跟踪扩展允许您通过显示以下内容来检查您的重定向是否对SEO友好或是否对您的网站有害:•HTTP标头中的“标准”重定向,例如301、302、303、307,FAKE 307等 308; •JavaScript重定向; •单个和多个META Refresh重定向(还显示跟踪中的刷新间隔,即“ 5秒”); •Rel-Canonical重定向:唯一且多个HTML HEAD Rel-Canonical和HTTP Header Rel-Canonical; •有关阻止主要搜索引擎或所有漫游器的警告; •有关已打破的Rel-Canonical目标的警报; •查看每个链接重定向跃点的LRT Power * Trust –一种SEO指标,可让您确定任何链接的功率和可信度; •分析robots.txt的每个重定向跃点; •分析HTML 支持语言:English
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值