查询字符串排序

开启查询字符串排序功能后,边缘安全加速 ESA会在处理请求时自动对URL中的查询字符串参数进行排序,然后再根据排序后的查询字符串进行缓存查找或请求转发。这意味着,无论请求URL中的查询字符串的顺序如何,只要参数及其值相同,边缘节点都会将缓存中具有相同查询字符串的文件视为相同的文件。开启该功能有助于提升缓存命中率。

功能介绍

默认情况下,请求URL中的查询字符串参数(即?之后的部分)的顺序会影响到缓存的行为,即使是相同的参数和值,只要顺序不同,ESA就会将它们视为不同的资源来缓存。这可能导致缓存碎片化,降低缓存效率。

假设您有一个电子商务网站,用户可以通过查询字符串来过滤商品列表。以下是两个有相同参数但顺序不同的URL请求例子:

  • https://www.example.com/products?title=0&color=red&size=medium

  • https://www.example.com/products?size=medium&color=red&title=0

如果没有开启查询字符串排序功能,ESA会将这两个请求视为对两个不同资源的请求,而实际上对源站而言,虽然查询字符串的排列顺序不同,这两个资源对应的内容是完全相同的,这种情况下就可以使用查询字符串排序功能。开启查询字符串排序后,ESA会将这两个请求视为相同的资源的访问,这样ESA节点就只需要回源一次,并且两个请求可以命中节点上的同一个缓存资源。这不仅提高了缓存的利用率,还可以提升网站的性能和用户体验,减少源站服务器的负载。

操作步骤

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

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

  3. 打开查询字符串排序开关。

    image