Citrix ADC

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

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

  • 提供包含有关发件人数据的 Cookie。
  • 标识正在传输的数据的类型。
  • 标识数据已经走过的路径(Via 标头)。

注意

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

HTTP 标头的前缀

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

HTTP 标头的操作

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

缓存控制头的前缀

以下前缀专门适用于缓存控制标头。

HTTP 标头前缀 说明
HTTP.REQ.CACHE_CONTROL 返回 HTTP 请求中的缓存控制标头。
HTTP.RES.CACHE_CONTROL 返回 HTTP 响应中的缓存控制标头。

缓存控制头的操作

您可以将 HTTP 标头的任何操作应用于缓存控制标头。

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

HTTP 标头操作 说明
Cache-Control header.NAME(<integer>) 作为文本值返回与名称值列表中的第 n 个组件对应的缓存控制标头的名称,如指定的<integer>。名称-值组件的索引是从 0 开始的。如果整数参数指定的大于列表中的组件数,则返回零长度文本对象。<integer> 下面是一个示例: http.req.cache_control.name(3).contains("some_text")
Cache-Control header.IS_INVALID 如果请求或响应中不存在缓存控制标头,则返回布尔值 TRUE。下面是一个示例: http.req.cache_control.is_invalid
Cache-Control header.IS_PRIVATE 如果缓存控制标头具有“私有”值,则返回布尔值 TRUE。下面是一个示例: http.req.cache_control.is_private
Cache-Control header.IS_PUBLIC 如果缓存控制标头具有“私有”值,则返回布尔值 TRUE。下面是一个示例:http.req.cache_control.is_public
Cache-Control header.IS_NO_STORE 如果缓存控制标头具有“无存储”值,则返回布尔值 TRUE。下面是一个示例:http.req.cache_control.is_no_store
Cache-Control header.IS_NO_CACHE 如果缓存控制标头具有“无缓存”值,则返回布尔值 TRUE。下面是一个示例:http.req.cache_control.is_no_cache
Cache-Control header.IS_MAX_AGE 如果缓存控制标头具有最大时间值,则返回布尔值 TRUE。下面是一个示例:http.req.cache_control.is_max_age
Cache-Control header.IS_MIN_FRESH 如果缓存控件头具有最小新鲜值,则返回布尔值 TRUE。下面是一个示例:http.req.cache_control.is_min_fresh
Cache-Control header.IS_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 如果缓存控制标头具有“无变换”值,则返回布尔值 TRUE。下面是一个示例:http.req.cache_control.is_no_transform
Cache-Control header.IS_ONLY_IF_CACHED 如果缓存控制标头具有“只有如果缓存”值,则返回布尔值 TRUE。下面是一个示例:http.req.cache_control.is_only_if_cached
Cache-Control header.IS_PROXY_REVALIDATE 如果缓存控件头具有代理重新验证值,则返回布尔值 TRUE。下面是一个示例:http.req.cache_control.is_proxy_revalidate
Cache-Control header.IS_S_MAXAGE 如果缓存控制标头具有 S-Maxage 值,则返回布尔值 TRUE。下面是一个示例:http.req.cache_control.is_s_maxage
Cache-Control header.IS_UNKNOWN 如果缓存控制标头是未知类型,则返回布尔值 TRUE。下面是一个示例:http.req.cache_control.is_unknown
Cache-Control header.MAX_AGE 返回缓存控制标头的值最大时间。如果此标头不存在或无效,则返回 0。下面是一个示例:http.req.cache_control.max_age.le(3)
Cache-Control header.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 返回缓存控制头 S-Maxage 的值。如果此标头不存在或无效,则返回 0。下面是一个示例:http.req.cache_control.s_maxage.eq(2)

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