301状态码表示被请求的资源已永久移动到新位置。
当服务器返回此响应(对GET或HEAD请求的响应)时,会自动将请求重定向到新的URL。浏览器接收到301状态码后,会根据响应头中的Location字段提供的新地址发起新的请求。这种重定向机制确保用户和搜索引擎能够始终访问最新的资源位置。
301重定向最常见的应用场景之一是域名跳转。
例如,当我们访问 http://www.baidu.com
时,服务器会返回一个301状态码,并在响应头中提供新的Location: https://www.baidu.com
。浏览器接收到这个响应后,会自动跳转到HTTPS版本的页面。这种方式不仅提高了安全性,还保证了所有访问都指向统一的URL格式。
301重定向的另一个典型场景是文件或页面路径的更改。
比如,如果您将网页的扩展名从PHP修改为HTML,或者改变了页面的目录结构,可以使用301重定向来通知搜索引擎和用户新的URL。这有助于保持SEO效果,避免因链接变更导致流量损失。
需要注意的是,301重定向是可以缓存的。
这意味着一旦浏览器或中间代理(如CDN)获取到了301重定向响应,它们可以在一定时间内直接使用缓存中的新地址,而无需再次向服务器发出请求。查看HTTP响应头中的status code
时,可能会看到from cache
的提示,表明该响应是从缓存中获取的。这种特性提高了加载速度并减少了服务器负载。
总结:
- 永久重定向:301状态码用于指示资源已永久移动到新位置,浏览器会根据Location字段自动跳转。
- 常见用途:主要用于域名跳转、文件路径更改等场景,以确保所有访问都能指向正确的URL。
- 缓存特性:301重定向结果可以被浏览器或代理服务器缓存,从而提高性能并减少重复请求。
通过正确配置301重定向,网站管理员可以有效管理URL变化,保持良好的用户体验和SEO表现。