HTTP 301

301 Move Permanently 是HTTP协议中的一个状态码（Status Code）。可以简单地理解为该资源已经被永久改变了位置，通常会发送HTTP Location来重定向到正确的新位置。

返回301状态码进行跳转被Google认为是将网站地址由HTTP迁移到HTTPS的最佳方法。

定义
根据定义： 
 如果一个客户端有链接编辑能力，其应当把所有的引用链接重定向到新的URL上。
 这个响应代码是可以被缓存的。
 除非请求方法是HEAD，否则响应实体应该包含一个小型的超文本，标注一个超链接到新的URL。
 如果是除了GET和HEAD之外的请求方法，客户端必须在重定向之前询问用户。

例子
客户端发出请求:
GET /blog HTTP/1.1
Host: www.example.com
服务器回应，不带Cache-Control头部:
HTTP/1.1 301 Moved Permanently
Location: http://www.example.org/index.asp
服务器回应，带Cache-Control头部:
HTTP/1.1 301 Moved Permanently
Location: http://www.example.org/index.asp
Cache-control: private; max-age=600

客户端实现问题
当某些HTTP/1.0客户端收到该状态码时，可能会将POST方法改为GET方法，继续向新地址发出请求，这是错误的实现——故而后续标准引入了HTTP 307。

搜索引擎优化
由于该代码表示页面地址发生了较长久的改变，故Bing和Google等搜索引擎都推荐使用301重定向，以改变搜索引擎中的实际页面地址。

相關條目 
 .htaccess
 HTTP狀態碼
 URL重寫
 HTTP 302
 HTTP 303
 HTTP 307
 HTTP Location

参考文献

外部連結 
 HTTP/1.1 Error codes in RFC 2616 
 RFC 1945
 RFC 2068

計算機錯誤
HTTP