http状态码301代表永久重定向。当服务器收到客户端的请求时,会将其重定向到另一个url,而不是返回请求的资源。通常用于以下情况:


1、当网站的url结构发生变化或网站迁移到新的域名时。

2、当网站上存在重复内容时,可以使用301状态码将所有重复的url重定向到一个主要的url。

3、当网站的某个页面不再存在时,可以使用301状态码将该页面的url重定向到一个现有的页面等等。 

HTTP 重定向 状态码3xx_网络

 URL 重定向(也称为 URL 转发)是一种为页面、表单或者整个 Web 站点/应用提供多个 URL 地址的技术。HTTP 对此操作有一种特殊类型的响应,称为 HTTP 重定向(HTTP redirect)。

重定向可实现许多目标:

  • 站点维护或停机期间的临时重定向。
  • 永久重定向将在更改站点的 URL 后,保留现有的链接/书签、上传文件时表示进度的页面等。

HTTP状态码301表示永久重定向。当服务器收到客户端的请求时,会将其重定向到另一个URL,而不是返回请求的资源。这个重定向是永久性的,意味着客户端应该记住新的URL,并在以后的请求中直接使用它。 

301状态码通常用于以下情况:

1. 网站URL更改:当网站的URL结构发生变化或网站迁移到新的域名时,可以使用301状态码将旧的URL重定向到新的URL。这样,搜索引擎和用户就可以找到并访问新的URL。

2. 重复内容:当网站上存在重复内容时,可以使用301状态码将所有重复的URL重定向到一个主要的URL。这有助于搜索引擎确定哪个URL是主要的,并避免重复内容对搜索排名的影响。

3. 旧页面重定向:当网站的某个页面不再存在时,可以使用301状态码将该页面的URL重定向到一个现有的页面。这样,用户访问旧的URL时会被自动重定向到新的页面。

4. HTTP和HTTPS之间的重定向:当网站从HTTP协议迁移到HTTPS协议时,可以使用301状态码将HTTP的URL重定向到相应的HTTPS的URL。这样可以确保用户访问网站时使用安全的HTTPS连接。

使用301状态码的好处是,它能够帮助搜索引擎和用户快速找到并访问正确的URL。搜索引擎会将重定向的页面视为目标页面的一部分,并将其排名和权重传递给新的URL。而用户在访问旧的URL时会被自动重定向到新的URL,提供更好的用户体验。

总之,HTTP状态码301表示永久重定向,用于将请求的URL重定向到一个新的URL。它通常用于网站URL更改、重复内容、旧页面重定向和HTTP和HTTPS之间的重定向等情况。它能够帮助搜索引擎和用户快速找到并访问正确的URL,提供更好的用户体验和搜索排名。

Location


Location 首部指定的是需要将页面重新定向至的地址。一般在响应码为 3xx 的响应中才会有意义。

发送新请求,获取 Location 指向的新页面所采用的方法与初始请求使用的方法以及重定向的类型相关:

  • 303 (See Also) 始终引致请求使用 GET 方法,而 307 (Temporary Redirect) 和 308 (Permanent Redirect) 则不转变初始请求中的所使用的方法;
  • 301 (Permanent Redirect) 和 302 (Found) 在大多数情况下不会转变初始请求中的方法,不过一些比较早的用户代理可能会引发方法的变更(所以你基本上不知道这一点)。

状态码为上述之一的所有响应都会带有一个 Location 首部。

除了重定向响应之外,状态码为 201 (Created) 的消息也会带有 Location 首部。它指向的是新创建的资源的地址。

Location 与 Content-Location是不同的,前者(Location )指定的是一个重定向请求的目的地址(或者新创建的文件的 URL),而后者( Content-Location)指向的是经过内容协商后的资源的直接地址,不需要进行进一步的内容协商。Location 对应的是响应,而 Content-Location 对应的是要返回的实体。

语法:Location: <url>

原理


在 HTTP 协议中,重定向操作由服务器向请求发送特殊的重定向响应而触发。重定向响应包含以 3 开头的状态码,以及 Location 标头,其保存着重定向的URL。

HTTP 重定向 状态码3xx_http_02

Status Code: 307 Internal Redirect

Location:https://www.jd.com/

浏览器在接收到重定向时,它们会立刻加载 Location 标头中提供的新 URL。除了额外的往返操作中会有一小部分性能损失之外,重定向操作对于用户来说是不可见的。

HTTP 重定向 状态码3xx_网络协议_03

不同类型的重定向映射可以划分为三个类别:

  • 永久重定向
  • 临时重定向
  • 特殊重定向 

假设有下面几个网址:

  http://www.admin10000.com/index.html

  http://admin10000.com

  http://admin10000.com/index.html

都做301重定向到 http://www.admin10000.com(选定的规范化网址),搜索引擎就知道 http://www.admin10000.com 是规范化网址,而且会把上面列的网址权重传递集中到规范化网址。

永久重定向


这种重定向操作是永久性的。它表示原 URL 不应再被使用,而选用新的 URL 替换它。搜索引擎机器人、RSS 阅读器以及其他爬虫将更新资源原始的 URL。

HTTP 重定向 状态码3xx_网络协议_04

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