前端面试题 - 36. 301 302 304的区别

1,310 阅读2分钟

301、302、304 是 HTTP 状态码,表示服务器返回的响应状态,分别表示:

  1. 301 Moved Permanently:永久重定向。表示请求的资源已经被永久移动到新的 URL,所有的后续请求应该使用新的 URL 访问。301 状态码告诉搜索引擎,原来的 URL 已经不存在了,应该把权重值传递给新的 URL。
  2. 302 Found:临时重定向。表示请求的资源已经被临时移动到新的 URL,所有的后续请求应该使用新的 URL 访问。302 状态码告诉搜索引擎,原来的 URL 仍然存在,权重值不应该传递给新的 URL。
  3. 304 Not Modified:未修改。表示请求的资源没有被修改,客户端可以使用本地缓存的版本。304 状态码通常在客户端使用缓存时返回,表示客户端的缓存版本是最新的,无需重新下载资源。

区别:

  1. 301 和 302 的主要区别在于,301 表示被请求的资源已经被永久移动到新的 URL,而 302 表示被请求的资源只是暂时被移动到了新的 URL。
  2. 301 对搜索引擎更友好,因为搜索引擎会把新的 URL 视为原来的 URL,传递原来 URL 的权重值。而 302 对搜索引擎不友好,因为搜索引擎会认为原来的 URL 仍然存在,权重值不应该传递给新的 URL。
  3. 304 表示客户端的缓存版本是最新的,无需重新下载资源,节省了带宽和时间。 总之,301 和 302 用于重定向,而 304 用于缓存。