azure - Azure CDN - “忽略查询字符串”和“绕过查询字符串缓存”之间的区别
问题描述
尽管文档中提到了以下内容,但我不知道“忽略查询字符串”和“绕过查询字符串的缓存”之间的确切区别。
从文档:
忽略查询字符串:默认模式。在这种模式下,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)
推荐阅读
- vb.net - VB.net Visual basic:从带有子数组的字典中创建 applocation/json 字符串
- django - Django 理解嵌套模型的 uniq 约束
- sql - 一起使用 MIN() 和 MAX() 函数
- ios - 在 DispatchGroup 完成之前关闭 vc 会导致应用程序崩溃吗?
- javascript - Javascript setInterval 在本地工作但在服务器上
- c# - twitter typeahead jquery 数据源
- python - pandas 多个独立索引(不是多索引)
- javascript - 如何在 mvc 应用程序中为 @Html.EditorFor 编写 javascript onfocusout/onblue 事件
- arrays - 如何从八度数组中读取一些固定数量的元素?
- r - R read.table() 不包括第一列?