loo*_*ook 3 browser google-chrome http cors
现在我们有一些 CORS 请求(获取,范围标头)
get http://example.com/01.mv (request a1)
get http://example.com/01.mv (request a2)
get http://example.com/02.mv (request b1)
get http://example.com/02.mv (request b2)
Run Code Online (Sandbox Code Playgroud)
在发送请求 a1 之前,浏览器会发送一个 OPTIONS 请求,我们可以找到Access-Control-Max-Age: 3600响应。
这是我的问题:
在请求 a2 中,将发送一个 OPTIONS 请求?
在请求 b1 中,将发送一个 OPTIONS 请求?
在请求 b2 中,将发送一个 OPTIONS 请求?
简短回答:浏览器应用Access-Control-Max-Age每个 URL,而不是每个来源。
在请求 a2 中,将发送一个 OPTIONS 请求?
不,因为由于Access-Control-Max-Age该 URL的标头,浏览器将缓存 CORS 预检的结果,但仅限于该http://example.com/01.mvURL。
在请求 b1 中,将发送一个 OPTIONS 请求?
是的,因为它用于不同的URL,http://example.com/02.mv.
CORS 协议通过按 URL 执行预检而不是按来源进行操作,因此Access-Control-Max-Age请求a1URL 的其他值不适用于不同的b1URL。
在请求 b2 中,将发送一个 OPTIONS 请求?
不,出于同样的原因,它不会发送请求a2:由于Access-Control-Max-Age浏览器将缓存 CORS 预检的结果http://example.com/02.mv。
至于 CORS 规范在这里定义的相关要求,如果您跟踪规范中的步骤,他们将带您到规范中术语缓存匹配的定义:
有一个缓存匹配 的要求,如果原产地要求的起源,网址是要求目前的网址...
换句话说,缓存的预检将仅用于以下两种情况的请求:
| 归档时间: |
|
| 查看次数: |
950 次 |
| 最近记录: |