开发者社区> 问答> 正文

URL的传递参数为变量导致缓存命中率低,是为什么?

在使用CDN时,CDN的缓存命中率很低。在浏览器中,按 F12 键,在访问页面中,单击 Network,然后在 Name 选项中,单击 Headers,在 Response Headers 模块中,确认URL响应头信息中 X-Cache 为 MISS,则表示没有命中CDN缓存。但是在页面中,对应文件的URL响应头信息的X-Cache为HIT。

注:本案例以Chrome浏览器为例。

展开
收起
保持可爱mmm 2020-03-30 14:54:00 586 0
1 条回答
写回答
取消 提交回答
  • 问题原因 没有开启CDN的过滤参数功能。

    解决方案 以下是关于CDN缓存命中率的说明以及CDN命中率低的相关解决方案。

    CDN命中率说明 CDN命中表示可以直接通过缓存获取到需要的数据。 CDN没有命中表示无法直接通过缓存获取需要的数据,需要再次查询数据库或者执行其它的操作。一般情况下,可能是由于缓存中根本不存在所需数据,或者缓存已经过期。

    开启过滤参数功能 可能由于没有开启CDN的过滤参数功能,导致URL中传递参数为变量。以如下URL为例,其对应的文件为ArrowScene.ccbi,但是每一次打开该文件时,URL中“?_t=”字段后的数字为变量,所以CDN并不会缓存该数据。 http://xxxxxx.com/movie/XSHD/res/ccb/ArrowScene.ccbi?_t=xxxxxxxxxxxxxx 登录CDN控制台,开启过滤参数功能。关于如何开启过滤参数功能,请参考过滤参数。 注:开启该功能后,“?_t=”字段后的参数将被忽略。

    2020-03-30 14:56:52
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
基于英特尔 SSD 的虚拟机缓存解决SSD 立即下载
用户态高速块缓存方案 立即下载
高性能Web架构之缓存体系 立即下载