Fetch API 和 Axios 是否将 304 响应视为 200?

Do the Fetch API and Axios see 304 responses as 200?

我不知道它是否会,但是如果我的服务器以 HTTP 状态代码 304 响应,Fetch API(特别是 response.ok)和 axios.get() 是否会看到响应为 200?

两者的文档都谈到如果响应代码在 200-299 范围内,则请求被视为成功,但显然 304 不在此范围内。

不,他们都不会将响应视为 200。

虽然 axios.get 将 return 承诺拒绝,但使用 fetch API 时 response.ok 的 return 值将是 false 并且response.redirected 将是 true.

当浏览器使用 If-MatchIf-Modified-Since header 发出 GET 请求并且服务器响应 304 Not Modified 时,客户端只会将其视为 200 OK.

响应是从缓存而不是服务器提供的,它允许客户端(在您的情况下是 axios)不必理解 HTTP 缓存,但它仍然可以利用它。

我不知道当客户端在没有先决条件的情况下发送请求并且仍然得到 304 响应时会做什么。客户端不会有较早的缓存响应,因此这肯定是 'broken'。我想你会得到一个错误,但我很想知道是什么。