查询字符串排序

开启查询字符串排序功能后,边缘安全加速 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. 站点管理页面,单击目标站点名称,或对应站点操作列的详情

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

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

    image