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-Match
或 If-Modified-Since
header 发出 GET 请求并且服务器响应 304 Not Modified
时,客户端只会将其视为 200 OK
.
响应是从缓存而不是服务器提供的,它允许客户端(在您的情况下是 axios)不必理解 HTTP 缓存,但它仍然可以利用它。
我不知道当客户端在没有先决条件的情况下发送请求并且仍然得到 304
响应时会做什么。客户端不会有较早的缓存响应,因此这肯定是 'broken'。我想你会得到一个错误,但我很想知道是什么。
我不知道它是否会,但是如果我的服务器以 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-Match
或 If-Modified-Since
header 发出 GET 请求并且服务器响应 304 Not Modified
时,客户端只会将其视为 200 OK
.
响应是从缓存而不是服务器提供的,它允许客户端(在您的情况下是 axios)不必理解 HTTP 缓存,但它仍然可以利用它。
我不知道当客户端在没有先决条件的情况下发送请求并且仍然得到 304
响应时会做什么。客户端不会有较早的缓存响应,因此这肯定是 'broken'。我想你会得到一个错误,但我很想知道是什么。