Azure CDN - “忽略查询字符串”和“绕过查询字符串缓存”之间的区别

Kat*_*tie 2 azure azure-cdn

尽管文档中提到了以下内容,但我不知道“忽略查询字符串”和“绕过查询字符串缓存”在实践中的确切区别是什么。

来自文档

忽略查询字符串:默认模式。在此模式下,CDN 存在点 (POP) 节点在第一个请求时将查询字符串从请求者传递到源服务器并缓存资产。从 POP 提供的对资产的所有后续请求都会忽略查询字符串,直到缓存的资产过期。

绕过查询字符串缓存:在此模式下,带有查询字符串的请求不会在 CDN POP 节点缓存。POP 节点直接从源服务器检索资产,并通过每个请求将其传递给请求者。

如果我的网址是:mydomain.com/articles?page=3. 这是否意味着在这两种情况下页面查询字符串都被忽略了。在这种情况下会有什么不同?

mez*_*tou 6

忽略查询字符串

第一个请求被转发到源服务器并缓存响应。无论查询字符串是什么,都从缓存中提供以下请求。

Request1:
Browser (mydomain.com/articles?page=3) -> Azure CDN -> Server (mydomain.com/articles?page=3)

Request2:
Browser (mydomain.com/articles?page=42) -> Azure CDN (from cached whatever the query string)

Request3:
Browser (mydomain.com/otherpage?page=3) -> Azure CDN -> Server (mydomain.com/otherpage?page=3)
Run Code Online (Sandbox Code Playgroud)

绕过查询字符串的缓存

Azure CDN 不缓存具有查询字符串的请求

Request1:
Browser (mydomain.com/articles?page=3) -> Azure CDN -> Server (mydomain.com/articles?page=3)

Request2:
Browser (mydomain.com/articles?page=3) -> Azure CDN -> Server (mydomain.com/articles?page=3)
Run Code Online (Sandbox Code Playgroud)

缓存每个唯一的 URL

Request1:
Browser (mydomain.com/articles?page=3) -> Azure CDN -> Server (mydomain.com/articles?page=3)

Request2:
Browser (mydomain.com/articles?page=3) -> Azure CDN (from cache)

Request3:
Browser (mydomain.com/articles?page=42) -> Azure CDN -> Server (mydomain.com/articles?page=42)
Run Code Online (Sandbox Code Playgroud)