Citrix ADC

关于评估HTTP和TCP负载

HTTP请求或响应的有效负载由HTTP协议信息(如标头,URL,正文内容以及版本和状态信息)组成。配置默认语法表达式以评估HTTP负载时,您可以使用默认语法表达式前缀,并在必要时使用运算符。

例如,如果要确定HTTP连接是否包含名为“MySeader”的自定义标头,则可以使用以下表达式(包括http.req.header(“< header_name >”)前缀和存在运算符):

http.req.header .exists(“到了头”)

您还可以将多个高级策略表达式与布尔运算符和算术运算符组合起来。例如,以下复合表达式对于各种Citrix ADC功能(如集成缓存,重写和响应程序)可能非常有用。此表达式首先使用& &布尔运算符来确定HTTP连接是否包含值为“text / html的内容类型标头。“如果该操作返回错误的值,则表达式确定HTTP连接是否包含“传输编码”或“内容长度”标头。

(http.req.header(“内容类型”)。http.req.header("Content-Type").eq("text/html")) || (http.req.header("Transfer-Encoding").exists) || (http.req.header("Content-Length").exists)

TCP或udp数据包的负载是数据包的数据部分。您可以配置高级策略表达式来检查TCP或udp数据包的功能,包括以下内容:

  • 源域和目标域
  • 源端口和目标端口
  • 有效载荷中的文本
  • 记录类型

以下表达式前缀从有效负载的正文中提取文本:

  • HTTP.REQ.BODY(整数)。以多行文本对象形式返回HTTP请求的正文,直到整数参数中指定的字符位置。如果主体中的字符少于参数中指定的字符,则返回整个主体。
  • HTTP.RES.BODY(整数)。返回HTTP响应正文的一部分。返回文本的长度等于整数参数中的数字。如果正文中的字符少于以整数指定的字符,则返回整个正文。
  • CLIENT.TCP.PAYLOAD(整数)。以字符串形式返回TCP有效负载数据,从负载中的第一个字符开始,然后继续为整数参数中的字符数。

下面是一个示例,如果1024字节的响应正文包含字符串“https”,并且此字符串出现在字符串”开始字符串”之后和字符串”结束字符串”之前:

http.res.body (1024) .after_str (start_string) .before_str .contains(“end_string”)(“https”)

注意:您可以将任何文本操作应用于有效负载正文。有关可以应用于文本的操作的信息,请参阅高级策略表达式:评估文本

关于评估HTTP和TCP负载

在本文中