ADC

HTTP 和缓存控制标头的表达式

评估 HTTP 流量的一种常用方法是检查请求或响应中的标头。标头可以执行多种功能,包括以下功能:

  • 提供包含发件人相关数据的 cookie。
  • 确定正在传输的数据类型。
  • 确定数据经过的路线(Via 标头)。

注意

如果使用操作来评估标题和文本数据,则基于标题的操作始终会覆盖基于文本的操作。例如,AFTER_STR 操作在应用于标头时,会覆盖当前标头类型的所有实例的基于文本的 AFTER_STR 操作。

HTTP 标头的前缀

HTTP 标头的前缀 表格用于提取 HTTP 标头的表达式前缀。

HTTP 标头的操作

HTTP 标头的操作 表,用于指定可以使用 HTTP 标头的前缀指定的操作。

缓存控制头的前缀

以下前缀专门适用于 Cache-Control 标头。

HTTP 标头前缀 说明
HTTP.REQ.CACHE_CONTROL 在 HTTP 请求中返回 Cache-Control 标头。
HTTP.RES.CACHE_CONTROL 在 HTTP 响应中返回 Cache-Control 标头。

缓存控制标头的操作

您可以将 HTTP 标头的任何操作应用于 Cache-Control 标头。

此外,以下操作标识特定类型的缓存控制标头。有关这些标头类型的信息,请参阅 RFC 2616。

HTTP 标头操作 说明
Cache-Control header.NAME(<integer>) 以文本值形式返回与名称值列表中第 n 个组件对应的 Cache-Control 标头的名称(由指定)。 <integer> 名称-值组件的索引以 0 为基准。如果整数参数指定的值大于列表中的组件数量,则返回长度为零的文本对象。 <integer> 以下是一个示例: http.req.cache_control.name(3).contains("some_text")
Cache-Control header.IS_INVALID 如果请求或响应中不存在 Cache-Control 标头,则返回布尔值 TRUE。以下是一个示例: http.req.cache_control.is_invalid
Cache-Control header.IS_PRIVATE 如果缓存控制标头的值为 Private,则返回布尔值 TRUE。以下是一个示例: http.req.cache_control.is_private
Cache-Control header.IS_PUBLIC 如果缓存控制标头的值为 Private,则返回布尔值 TRUE。下面是一个示例:http.req.cache_control.is_public
Cache-Control header.IS_NO_STORE 如果 Cache-Control 标头的值为 No-Store,则返回布尔值 TRUE。下面是一个示例:http.req.cache_control.is_no_store
Cache-Control header.IS_NO_CACHE 如果缓存控制标头的值为 No-Cache,则返回布尔值 TRUE。下面是一个示例:http.req.cache_control.is_no_cache
Cache-Control Header.is_max_age 如果 Cache-Control 标头的值为 Max-Age,则返回布尔值 TRUE。下面是一个示例:http.req.cache_control.is_max_age
Cache-Control header.IS_MIN_FRESH 如果缓存控制标头的值为 Min-Fresh,则返回布尔值 TRUE。下面是一个示例:http.req.cache_control.is_min_fresh
Cache-Control Header.is_max_Stale 如果 Cache-Control 标头的值为 Max-Stale,则返回布尔值 TRUE。下面是一个示例:http.req.cache_control.is_max_stale
Cache-Control header.IS_MUST_REVALIDATE 如果缓存控件标头具有“必须重新验证”值,则返回布尔值 TRUE。下面是一个示例:http.req.cache_control.is_must_revalidate
Cache-Control header.IS_NO_TRANSFORM 如果缓存控制标头的值为 No-Transform,则返回布尔值 TRUE。下面是一个示例:http.req.cache_control.is_no_transform
Cache-Control header.IS_ONLY_IF_CACHED 如果缓存控制标头的值为 Only-If-Cached,则返回布尔值 TRUE。下面是一个示例:http.req.cache_control.is_only_if_cached
Cache-Control header.IS_PROXY_REVALIDATE 如果缓存控制标头的值为 Proxy-Revalidate,则返回布尔值 TRUE。下面是一个示例:http.req.cache_control.is_proxy_revalidate
Cache-Control header.IS_S_MAXAGE 如果 Cache-Control 标头的值为 S-Maxage,则返回布尔值 TRUE。下面是一个示例:http.req.cache_control.is_s_maxage
Cache-Control header.IS_UNKNOWN 如果 Cache-Control 标头的类型未知,则返回布尔值 TRUE。下面是一个示例:http.req.cache_control.is_unknown
Cache-Control header.MAX_AGE 返回 Cache-Control 标头 Max-Age 的值。如果此标头不存在或无效,则返回 0。下面是一个示例:http.req.cache_control.max_age.le(3)
Cache-Control header.MAX_STALE 返回 Cache-Control 标头 Max-Stale 的值。如果此标头不存在或无效,则返回 0。下面是一个示例:http.req.cache_control.max_stale.le(3)
Cache-Control header.MIN_FRESH 返回 Cache-Control 标头 Min-Fresh 的值。如果此标头不存在或无效,则返回 0。下面是一个示例:http.req.cache_control.min_fresh.le(3)
Cache-Control header.S_MAXAGE 返回 Cache-Control 标头 S-Maxage 的值。如果此标头不存在或无效,则返回 0。下面是一个示例:http.req.cache_control.s_maxage.eq(2)
HTTP 和缓存控制标头的表达式