默认情况下,边缘安全加速 ESA节点将POST请求视为动态请求,POST 请求将会绕过缓存模块直接访问源站,ESA节点不会对源站响应信息进行缓存。启用POST缓存功能后,ESA节点可以缓存POST请求的响应内容,并将缓存内容提供给后续的相同请求。
使用场景
POST缓存功能适用于对信息进行查询,并且查询结果可被重复利用的场景。典型场景例如:
电商网站的商品信息查询(类搜索API)
场景描述:前端通过POST发送JSON查询条件(如筛选、分页、聚合),后端返回结构化数据。
为何用POST:因查询参数复杂、长度超限,不适合放URL中(GET请求有长度限制)。
缓存价值:热门查询(如
产品类型:鞋类;款式:跑鞋;性别:男子;价格区间:300~600;)结果被缓存可以减少数据库压力。
技术原理
开启POST缓存功能之后,ESA节点在收到客户端的POST请求之后,会先将POST请求转换为GET请求,然后按静态资源的缓存流程来处理;如果ESA节点上没有缓存资源,或者缓存资源已经过期,ESA节点会将请求还原成POST请求之后再转发给源站。
注意事项
缓存过期时间设置:POST缓存通常用于信息查询类场景,建议设置较短(几秒到几分钟)的缓存过期时间。
缓存刷新机制:当源站数据更新时,需主动刷新相关缓存内容,避免客户端接收到陈旧的数据。
安全性:避免缓存含用户隐私数据的POST响应(如个人账单),防止信息泄露。
操作步骤
在ESA控制台选择站点管理,在站点列单击目标站点。
在左侧导航栏,选择。
单击新增规则,填写规则名称。
在如果请求匹配以下规则...区域设置要匹配的用户请求特征,具体配置规则请参见规则表达式的组成。
在POST 缓存区域,单击配置,配置POST缓存参数后单击确定:
状态:用于开启或者关闭POST缓存功能。
Body 大小限制:用于限制客户端发送的POST请求中携带的Body大小,支持配置的范围是1~8KB。Body大小超出限制的请求将会被ESA节点当作动态请求转发给源站,不会使用缓存流程来处理。
缓存键的处理模式:用于设置ESA节点在缓存源站响应时使用的缓存键,建议在缓存键中包含请求体(Body)的MD5哈希值,否则不同Body可能会命中同一缓存。缓存键的处理模式支持以下两种:
先对 Body 内容取 MD5,然后将 MD5 值加入缓存键
在缓存键中忽略 Body 内容

配置示例
以下示例展示常见场景下的POST缓存参数配置,供您参考。
示例一:商品搜索筛选API(不同查询条件缓存不同结果)
场景:电商前端通过POST发送包含筛选条件的JSON(如类目、价格区间、排序方式),不同用户的查询条件各不相同,但热门搜索组合会被多用户复用。要求不同查询条件命中各自独立的缓存,避免返回错误结果。
配置推荐

参数 | 推荐配置 |
POST缓存 | 开启 |
Body大小限制 | 4KB(典型搜索请求的JSON约1~3KB,留出余量) |
缓存键处理模式 | 先对 Body 内容取 MD5,然后将 MD5 值加入缓存键(不同查询条件生成不同缓存键,确保各自命中独立缓存) |
效果:相同筛选条件的请求直接命中缓存,减少数据库查询;不同筛选条件各自独立缓存,不会互相干扰。
示例二:全站公共数据查询(所有用户共享同一缓存)
场景:管理后台通过POST请求拉取全站实时统计数据(如当日订单总量、在线用户数)。所有用户访问同一接口,期望返回相同内容,不需要因Body差异(如请求中包含客户端标识符)而区分缓存,希望所有请求共享同一份缓存。
推荐配置

参数 | 推荐配置 |
POST缓存 | 开启 |
Body大小限制 | 2KB(请求Body仅含少量标识符,体积小) |
缓存键处理模式 | 在缓存键中忽略 Body 内容(所有POST请求共享同一缓存条目,Body差异不影响缓存命中) |
效果:第一个请求回源后,后续所有用户的请求直接命中同一缓存,大幅降低源站并发压力。