Specifications
Chapter 4: Configuring the High-Level Network
4-60
case of a rule containing questions about an HTTP request, the rule is
evaluated in the context of the triggering TCP SYN packet until the first
HTTP request question is encountered. After the proxy, the rule
continues evaluation in the context of the HTTP request packet, and
variables may refer to this packet. Before a variable is compared to the
constant in a relational expression, it is replaced with its current value.
The allowed variable names are:
• http_method
The http_method is the action of the HTTP request. Common values
are GET or POST.
• http_uri
The http_uri is the URL, but does not include the protocol and the
fully qualified domain name (FQDN). For example, if the URL is
http://www.url.com/buy.asp, then the URI is /buy.asp.
• http_version
The http_version is the HTTP protocol version string. Possible
values are "HTTP/1.0" or "HTTP/1.1".
• http_host
The http_host is the value in the Host: header of the HTTP request. It
indicates the actual FQDN that the client requested. Possible values
are a FQDN or a host IP address in dot notation.
• http_cookie <cookie name>
The HTTP cookie header is the value in the Cookie: header for the
specified cookie name. An HTTP cookie header line can contain one
or more cookie name value pairs. The http_cookie <cookie name>
variable evaluates to the value of the cookie with the name <cookie
name>. For example, given a request with the following cookie
header line:
Cookie: green-cookie=4; blue-cookie=horses
The variable http_cookie blue-cookie evaluates to the string horses.
The variable http_cookie green-cookie evaluates to the string 4.
• http_header <header_tag_string>
The variable http_header evaluates the string following an HTTP
header tag that you specify. For example, you can specify the
http_host variable with the http_header variable. In a rule
specification, if you wanted to load balance based on the host name
andrew, the rule statement might look as follows:
if ( http_header "Host" starts_with "andrew" ) { use ( andrew_pool ) } else { use (
main_pool ) }










