状态码,主要说一下304

808 阅读2分钟

100 Continue

表示目前为止一切正常, 客户端应该继续请求, 如果已完成请求则忽略.

200 OK

表明请求已经成功. 默认情况下状态码为200的响应可以被缓存。

301 Moved Permanently

永久重定向。说明请求的资源已经被移动到了由 Location 头部指定的 url 上,是固定的不会再改变。搜索引擎会根据该响应修正。

302 Found

临时重定向。重定向状态码表明请求的资源被暂时的移动到了由 Location 头部指定的 URL 上。浏览器会重定向到这个URL,但是搜索引擎不会对该资源的链接进行更新。

304 Not Modified 缓存重定向

说明无需再次传输请求的内容,也就是说可以使用缓存的内容。这通常是在一些安全的方法(safe),例如GET 或HEAD, 或在请求中附带了头部信息: If-None-Match 或If-Modified-Since。

如果返回 200,响应会带有头部 Cache-Control, Content-Location, Date, ETag, Expires,和 Vary.

ETag 和 If-None-Match

  1. 客户端请求一个文件(A)。 服务器返回文件A,并在给A加上一个 ETag。
  2. 客户端收到响应后,并将文件连同 ETag 一起缓存。
  3. 客户再次请求文件A,会发送 If-None-Match,内容是缓存该文件A的 Etag 值
  4. 服务器检查该 ETag,和计算出来的 Etag 匹配,来判断文件是否未被修改。如果未修改就直接返回 304 和一个空的响应体。否则返回 200 和 文件。

当与 If-Modified-Since 一同使用的时候,If-None-Match 优先级更高(假如服务器支持的话)

400 Bad Request

表示由于语法无效,服务器无法理解该请求。

404 Not Found

说明服务器端无法找到所请求的资源。返回该响应的链接通常称为坏链(broken link)或死链(dead link),它们会导向链接出错处理

404 不能说明请求的资源是临时还是永久丢失。如果服务器知道该资源是永久丢失,那么应该返回 410 (Gone) 而不是 404 。

500 Internal Server Error

表示所请求的服务器遇到意外的情况并阻止其执行请求。

更多状态码:
作者:YuMing16857
链接:juejin.cn/post/684490…