如何解决Azure CDN - “忽略查询字符串”和“绕过查询字符串缓存”之间的区别
尽管文档中提到了以下内容,但我不知道“忽略查询字符串”和“绕过查询字符串缓存”在实践中的确切区别。
来自doc:
忽略查询字符串:默认模式。在这种模式下,CDN 存在点 (POP) 节点在第一次请求时将查询字符串从请求者传递到源服务器并缓存资产。从 POP 提供的对资产的所有后续请求都会忽略查询字符串,直到缓存的资产到期。
对查询字符串绕过缓存:在这种模式下,带有查询字符串的请求不会缓存在 CDN POP 节点上。 POP 节点直接从源服务器检索资产,并在每次请求时将其传递给请求者。
如果我的网址是:mydomain.com/articles?page=3
。这是否意味着页面查询字符串在这两种情况下都被简单地忽略了。在这种情况下会有什么不同?
解决方法
忽略查询字符串
第一个请求被转发到源服务器,响应被缓存。无论查询字符串是什么,以下请求都从缓存中提供。
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)
绕过查询字符串缓存
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)
缓存每个唯一的 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)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。