查询字符串

边缘节点在处理用户请求生成缓存键(Cachekey)时,设置去除请求URL中携带的?以及?之后的查询字符串(例如:用户身份信息、访问渠道来源等),使携带不同参数的请求 URL 均指向同一份缓存文件,从而提升缓存命中率,缩短页面加载时间。

功能介绍

作用

适用场景

去除请求URL中携带的?以及?之后的参数,使不同用户访问同一个文件时,即使携带不同的URL参数,也能够命中同一个缓存文件,可以提高缓存命中率,减少回源次数,提升文件分发效率。

当用户的请求URL中携带与资源内容无关的参数(如用户身份信息或访问渠道来源)时,建议忽略查询字符串。例如:

A用户:http://example.com/1.jpg?uid=123

B用户:http://example.com/1.jpg?uid=654

如果不忽略查询字符串,节点会将两个URL视为不同的请求,导致每次请求都需回源站获取资源。设置忽略查询字符串后,节点会去除URL?后的参数,仅使用http://example.com/1.jpg匹配缓存文件。

操作步骤

  1. ESA控制台,选择站点管理,在站点列单击目标站点。

  2. 在左侧导航栏,选择缓存 > 配置

  3. 查询字符串区域,单击配置,根据实际需求选择过滤模式并完成相关配置,单击确定保存。

    image

过滤模式

假设原始URLhttp://example.com/1.jpg?key1=1&key2=2&key3=3,根据设置不同的规则,原始URLESA处理后结果如下所示。

参数

说明

示例

全部忽略

删除请求URL中携带的?以及?之后的所有查询字符串。

缓存keyhttp://example.com/1.jpg

全部保留

保留请求URL中携带的?以及?之后的所有查询字符串。

缓存keyhttp://example.com/1.jpg?key1=1&key2=2&key3=3

删除指定查询字符串参数

删除请求URL中携带的?之后指定的查询字符串。在输入框中输入需要删除的参数,按回车确认。

如果输入的待删除参数为key1key3,那么缓存keyhttp://example.com/1.jpg?key2=2

保留指定查询字符串参数

仅保留请求URL中携带的?之后指定的查询字符串。在输入框中输入需要保留的参数,按回车确认。

如果输入的待保留参数为key1key3,那么缓存keyhttp://example.com/1.jpg?key1=1&key3=3