301、302、304 是 HTTP 状态码,表示服务器返回的响应状态,分别表示:
- 301
Moved Permanently:永久重定向。表示请求的资源已经被永久移动到新的 URL,所有的后续请求应该使用新的 URL 访问。301 状态码告诉搜索引擎,原来的 URL 已经不存在了,应该把权重值传递给新的 URL。 - 302
Found:临时重定向。表示请求的资源已经被临时移动到新的 URL,所有的后续请求应该使用新的 URL 访问。302 状态码告诉搜索引擎,原来的 URL 仍然存在,权重值不应该传递给新的 URL。 - 304
Not Modified:未修改。表示请求的资源没有被修改,客户端可以使用本地缓存的版本。304 状态码通常在客户端使用缓存时返回,表示客户端的缓存版本是最新的,无需重新下载资源。
区别:
- 301 和 302 的主要区别在于,301 表示被请求的资源已经被永久移动到新的 URL,而 302 表示被请求的资源只是暂时被移动到了新的 URL。
- 301 对搜索引擎更友好,因为搜索引擎会把新的 URL 视为原来的 URL,传递原来 URL 的权重值。而 302 对搜索引擎不友好,因为搜索引擎会认为原来的 URL 仍然存在,权重值不应该传递给新的 URL。
- 304 表示客户端的缓存版本是最新的,无需重新下载资源,节省了带宽和时间。 总之,301 和 302 用于重定向,而 304 用于缓存。