DOC: config: fix alphabetical ordering of layer 7 sample fetch functions

Some misordering has been accumulating over time, making some of them
hard to spot.
This commit is contained in:
Willy Tarreau 2025-05-26 09:07:54 +02:00
parent 38456f63a3
commit e9248243e9

View File

@ -25140,36 +25140,14 @@ capture.req.uri string
capture.req.ver string
capture.res.hdr(<idx>) string
capture.res.ver string
req.body binary
req.body_param([<name>[,i]]) string
req.body_len integer
req.body_size integer
req.cook([<name>]) string
cook([<name>]) string
req.cook_cnt([<name>]) integer
cook_cnt([<name>]) integer
req.cook_val([<name>]) integer
cook_val([<name>]) integer
req.cook_names([<delim>]) string
cookie([<name>]) string
hdr([<name>[,<occ>]]) string
request_date([<unit>]) integer
req.fhdr(<name>[,<occ>]) string
req.fhdr_cnt([<name>]) integer
req.hdr([<name>[,<occ>]]) string
req.hdr_cnt([<name>]) integer
hdr_cnt([<header>]) integer
req.hdr_ip([<name>[,<occ>]]) ip
hdr_ip([<name>[,<occ>]]) ip
req.hdr_val([<name>[,<occ>]]) integer
hdr_val([<name>[,<occ>]]) integer
req.hdrs string
req.hdrs_bin binary
req.timer.hdr integer
req.timer.idle integer
req.timer.queue integer
req.timer.tq integer
res.timer.hdr integer
http_auth(<userlist>) boolean
http_auth_bearer([<header>]) string
http_auth_group(<userlist>) string
@ -25181,9 +25159,30 @@ method integer
path string
pathq string
query([<options>]) string
req.body binary
req.body_len integer
req.body_param([<name>[,i]]) string
req.body_size integer
req.cook([<name>]) string
req.cook_cnt([<name>]) integer
req.cook_names([<delim>]) string
req.cook_val([<name>]) integer
req.fhdr(<name>[,<occ>]) string
req.fhdr_cnt([<name>]) integer
req.hdr([<name>[,<occ>]]) string
req.hdr_cnt([<name>]) integer
req.hdr_ip([<name>[,<occ>]]) ip
req.hdr_names([<delim>]) string
req.hdr_val([<name>[,<occ>]]) integer
req.hdrs string
req.hdrs_bin binary
req.timer.hdr integer
req.timer.idle integer
req.timer.queue integer
req.timer.tq integer
req.ver string
req_ver string
request_date([<unit>]) integer
res.body binary
res.body_len integer
res.body_size integer
@ -25192,41 +25191,42 @@ res.cache_name string
res.comp boolean
res.comp_algo string
res.cook([<name>]) string
scook([<name>]) string
res.cook_cnt([<name>]) integer
scook_cnt([<name>]) integer
res.cook_val([<name>]) integer
scook_val([<name>]) integer
res.cook_names([<delim>]) string
res.cook_val([<name>]) integer
res.fhdr([<name>[,<occ>]]) string
res.fhdr_cnt([<name>]) integer
res.hdr([<name>[,<occ>]]) string
shdr([<name>[,<occ>]]) string
res.hdr_cnt([<name>]) integer
shdr_cnt([<name>]) integer
res.hdr_ip([<name>[,<occ>]]) ip
shdr_ip([<name>[,<occ>]]) ip
res.hdr_names([<delim>]) string
res.hdr_val([<name>[,<occ>]]) integer
shdr_val([<name>[,<occ>]]) integer
res.hdrs string
res.hdrs_bin binary
res.timer.hdr integer
res.ver string
resp_ver string
scook([<name>]) string
scook_cnt([<name>]) integer
scook_val([<name>]) integer
server_status integer
set-cookie([<name>]) string
shdr([<name>[,<occ>]]) string
shdr_cnt([<name>]) integer
shdr_ip([<name>[,<occ>]]) ip
shdr_val([<name>[,<occ>]]) integer
status integer
txn.status integer
txn.timer.total integer
unique-id string
url string
url_ip ip
url_port integer
urlp([<name>[,<delim>[,i]]]) string
url_param([<name>[,<delim>[,i]]]) string
urlp_val([<name>[,<delim>[,i]]]) integer
url32 integer
url32+src binary
url_ip ip
url_param([<name>[,<delim>[,i]]]) string
url_port integer
urlp([<name>[,<delim>[,i]]]) string
urlp_val([<name>[,<delim>[,i]]]) integer
-------------------------------------------------+-------------
Detailed list:
@ -25303,73 +25303,6 @@ capture.res.ver : string
"HTTP/1.1". Unlike "res.ver", it can be used in logs because it relies on a
persistent flag.
req.body : binary
This returns the HTTP request's available body as a block of data. It is
recommended to use "option http-buffer-request" to be sure to wait, as much
as possible, for the request's body.
req.body_param([<name>[,i]]) : string
This fetch assumes that the body of the POST request is url-encoded. The user
can check if the "content-type" contains the value
"application/x-www-form-urlencoded". This extracts the first occurrence of the
parameter <name> in the body, which ends before '&'. The parameter name is
case-sensitive, unless "i" is added as a second argument. If no name is
given, any parameter will match, and the first one will be returned. The
result is a string corresponding to the value of the parameter <name> as
presented in the request body (no URL decoding is performed). Note that the
ACL version of this fetch iterates over multiple parameters and will
iteratively report all parameters values if no name is given.
req.body_len : integer
This returns the length of the HTTP request's available body in bytes. It may
be lower than the advertised length if the body is larger than the buffer. It
is recommended to use "option http-buffer-request" to be sure to wait, as
much as possible, for the request's body.
req.body_size : integer
This returns the advertised length of the HTTP request's body in bytes. It
will represent the advertised Content-Length header, or the size of the
available data in case of chunked encoding.
req.cook([<name>]) : string
cook([<name>]) : string (deprecated)
This extracts the last occurrence of the cookie name <name> on a "Cookie"
header line from the request, and returns its value as string. If no name is
specified, the first cookie value is returned. When used with ACLs, all
matching cookies are evaluated. Spaces around the name and the value are
ignored as requested by the Cookie header specification (RFC6265). The cookie
name is case-sensitive. Empty cookies are valid, so an empty cookie may very
well return an empty value if it is present. Use the "found" match to detect
presence. Use the res.cook() variant for response cookies sent by the server.
ACL derivatives :
req.cook([<name>]) : exact string match
req.cook_beg([<name>]) : prefix match
req.cook_dir([<name>]) : subdir match
req.cook_dom([<name>]) : domain match
req.cook_end([<name>]) : suffix match
req.cook_len([<name>]) : length match
req.cook_reg([<name>]) : regex match
req.cook_sub([<name>]) : substring match
req.cook_cnt([<name>]) : integer
cook_cnt([<name>]) : integer (deprecated)
Returns an integer value representing the number of occurrences of the cookie
<name> in the request, or all cookies if <name> is not specified.
req.cook_val([<name>]) : integer
cook_val([<name>]) : integer (deprecated)
This extracts the last occurrence of the cookie name <name> on a "Cookie"
header line from the request, and converts its value to an integer which is
returned. If no name is specified, the first cookie value is returned. When
used in ACLs, all matching names are iterated over until a value matches.
req.cook_names([<delim>]) : string
This builds a string made from the concatenation of all cookie names as they
appear in the request (Cookie header) when the rule is evaluated. The default
delimiter is the comma (',') but it may be overridden as an optional argument
<delim>. In this case, only the first character of <delim> is considered.
cookie([<name>]) : string (deprecated)
This extracts the last occurrence of the cookie name <name> on a "Cookie"
header line from the request, or a "Set-Cookie" header from the response, and
@ -25388,158 +25321,6 @@ hdr([<name>[,<occ>]]) : string
Note that contrary to the hdr() sample fetch method, the hdr_* ACL keywords
unambiguously apply to the request headers.
request_date([<unit>]) : integer
This is the exact date when the first byte of the HTTP request was received
by HAProxy (log-format alias %tr). This is computed from accept_date +
handshake time (%Th) + idle time (%Ti).
Returns a value in number of seconds since epoch.
<unit> is facultative, and can be set to "s" for seconds (default behavior),
"ms" for milliseconds or "us" for microseconds.
If unit is set, return value is an integer reflecting either seconds,
milliseconds or microseconds since epoch.
It is useful when a time resolution of less than a second is needed.
req.fhdr(<name>[,<occ>]) : string
This returns the full value of the last occurrence of header <name> in an
HTTP request. It differs from req.hdr() in that any commas present in the
value are returned and are not used as delimiters. This is sometimes useful
with headers such as User-Agent.
When used from an ACL, all occurrences are iterated over until a match is
found.
Optionally, a specific occurrence might be specified as a position number.
Positive values indicate a position from the first occurrence, with 1 being
the first one. Negative values indicate positions relative to the last one,
with -1 being the last one.
req.fhdr_cnt([<name>]) : integer
Returns an integer value representing the number of occurrences of request
header field name <name>, or the total number of header fields if <name> is
not specified. Like req.fhdr() it differs from res.hdr_cnt() by not splitting
headers at commas.
req.hdr([<name>[,<occ>]]) : string
This returns the last comma-separated value of the header <name> in an HTTP
request. The fetch considers any comma as a delimiter for distinct values.
This is useful if you need to process headers that are defined to be a list
of values, such as Accept, or X-Forwarded-For. If full-line headers are
desired instead, use req.fhdr(). Please carefully check RFC 7231 to know how
certain headers are supposed to be parsed. Also, some of them are case
insensitive (e.g. Connection).
When used from an ACL, all occurrences are iterated over until a match is
found.
Optionally, a specific occurrence might be specified as a position number.
Positive values indicate a position from the first occurrence, with 1 being
the first one. Negative values indicate positions relative to the last one,
with -1 being the last one.
A typical use is with the X-Forwarded-For header once converted to IP,
associated with an IP stick-table.
ACL derivatives :
hdr([<name>[,<occ>]]) : exact string match
hdr_beg([<name>[,<occ>]]) : prefix match
hdr_dir([<name>[,<occ>]]) : subdir match
hdr_dom([<name>[,<occ>]]) : domain match
hdr_end([<name>[,<occ>]]) : suffix match
hdr_len([<name>[,<occ>]]) : length match
hdr_reg([<name>[,<occ>]]) : regex match
hdr_sub([<name>[,<occ>]]) : substring match
req.hdr_cnt([<name>]) : integer
hdr_cnt([<header>]) : integer (deprecated)
Returns an integer value representing the number of occurrences of request
header field name <name>, or the total number of header field values if
<name> is not specified. Like req.hdr() it counts each comma separated
part of the header's value. If counting of full-line headers is desired,
then req.fhdr_cnt() should be used instead.
With ACLs, it can be used to detect presence, absence or abuse of a specific
header, as well as to block request smuggling attacks by rejecting requests
which contain more than one of certain headers.
Refer to req.hdr() for more information on header matching.
req.hdr_ip([<name>[,<occ>]]) : ip
hdr_ip([<name>[,<occ>]]) : ip (deprecated)
This extracts the last occurrence of header <name> in an HTTP request,
converts it to an IPv4 or IPv6 address and returns this address. When used
with ACLs, all occurrences are checked, and if <name> is omitted, every value
of every header is checked. The parser strictly adheres to the format
described in RFC7239, with the extension that IPv4 addresses may optionally
be followed by a colon (':') and a valid decimal port number (0 to 65535),
which will be silently dropped. All other forms will not match and will
cause the address to be ignored.
The <occ> parameter is processed as with req.hdr().
A typical use is with the X-Forwarded-For and X-Client-IP headers.
req.hdr_val([<name>[,<occ>]]) : integer
hdr_val([<name>[,<occ>]]) : integer (deprecated)
This extracts the last occurrence of header <name> in an HTTP request, and
converts it to an integer value. When used with ACLs, all occurrences are
checked, and if <name> is omitted, every value of every header is checked.
The <occ> parameter is processed as with req.hdr().
A typical use is with the X-Forwarded-For header.
req.hdrs : string
Returns the current request headers as string including the last empty line
separating headers from the request body. The last empty line can be used to
detect a truncated header block. This sample fetch is useful for some SPOE
headers analyzers and for advanced logging.
req.hdrs_bin : binary
Returns the current request headers contained in preparsed binary form. This
is useful for offloading some processing with SPOE. Each string is described
by a length followed by the number of bytes indicated in the length. The
length is represented using the variable integer encoding detailed in the
SPOE documentation. The end of the list is marked by a couple of empty header
names and values (length of 0 for both).
*(<str:header-name><str:header-value>)<empty string><empty string>
int: refer to the SPOE documentation for the encoding
str: <int:length><bytes>
req.timer.hdr : integer
Total time to get the client request (HTTP mode only). It's the time elapsed
between the first bytes received and the moment the proxy received the empty
line marking the end of the HTTP headers. This is reported in milliseconds
(ms) and is equivalent to %TR in log-format. See section 8.4 "Timing events"
for more details.
req.timer.idle : integer
This is the idle time before the HTTP request (HTTP mode only). This timer
counts between the end of the handshakes and the first byte of the HTTP
request. This is reported in milliseconds and is equivalent to %Ti in
log-format. See section 8.4 "Timing events" for more details.
req.timer.queue : integer
Total time spent in the queues waiting for a connection slot.
This is reported in milliseconds and is equivalent to %Tw in
log-format. See section 8.4 "Timing events" for more details.
req.timer.tq : integer
total time to get the client request from the accept date or since the
emission of the last byte of the previous response.
This is reported in milliseconds and is equivalent to %Tq in
log-format. See section 8.4 "Timing events" for more details.
res.timer.hdr : integer
It's the time elapsed between the moment the TCP connection was established
to the server and the moment the server sent its complete response headers.
This is reported in milliseconds and is equivalent to %Tr in log-format. See
section 8.4 "Timing events" for more details.
http_auth(<userlist>) : boolean
Returns a boolean indicating whether the authentication data received from
the client match a username & password stored in the specified userlist. This
@ -25655,12 +25436,211 @@ query([<options>]) : string
- with_qm : Include the question mark at the beginning ot the query string,
if not empty.
req.body : binary
This returns the HTTP request's available body as a block of data. It is
recommended to use "option http-buffer-request" to be sure to wait, as much
as possible, for the request's body.
req.body_len : integer
This returns the length of the HTTP request's available body in bytes. It may
be lower than the advertised length if the body is larger than the buffer. It
is recommended to use "option http-buffer-request" to be sure to wait, as
much as possible, for the request's body.
req.body_param([<name>[,i]]) : string
This fetch assumes that the body of the POST request is url-encoded. The user
can check if the "content-type" contains the value
"application/x-www-form-urlencoded". This extracts the first occurrence of the
parameter <name> in the body, which ends before '&'. The parameter name is
case-sensitive, unless "i" is added as a second argument. If no name is
given, any parameter will match, and the first one will be returned. The
result is a string corresponding to the value of the parameter <name> as
presented in the request body (no URL decoding is performed). Note that the
ACL version of this fetch iterates over multiple parameters and will
iteratively report all parameters values if no name is given.
req.body_size : integer
This returns the advertised length of the HTTP request's body in bytes. It
will represent the advertised Content-Length header, or the size of the
available data in case of chunked encoding.
req.cook([<name>]) : string
cook([<name>]) : string (deprecated)
This extracts the last occurrence of the cookie name <name> on a "Cookie"
header line from the request, and returns its value as string. If no name is
specified, the first cookie value is returned. When used with ACLs, all
matching cookies are evaluated. Spaces around the name and the value are
ignored as requested by the Cookie header specification (RFC6265). The cookie
name is case-sensitive. Empty cookies are valid, so an empty cookie may very
well return an empty value if it is present. Use the "found" match to detect
presence. Use the res.cook() variant for response cookies sent by the server.
ACL derivatives :
req.cook([<name>]) : exact string match
req.cook_beg([<name>]) : prefix match
req.cook_dir([<name>]) : subdir match
req.cook_dom([<name>]) : domain match
req.cook_end([<name>]) : suffix match
req.cook_len([<name>]) : length match
req.cook_reg([<name>]) : regex match
req.cook_sub([<name>]) : substring match
req.cook_cnt([<name>]) : integer
cook_cnt([<name>]) : integer (deprecated)
Returns an integer value representing the number of occurrences of the cookie
<name> in the request, or all cookies if <name> is not specified.
req.cook_names([<delim>]) : string
This builds a string made from the concatenation of all cookie names as they
appear in the request (Cookie header) when the rule is evaluated. The default
delimiter is the comma (',') but it may be overridden as an optional argument
<delim>. In this case, only the first character of <delim> is considered.
req.cook_val([<name>]) : integer
cook_val([<name>]) : integer (deprecated)
This extracts the last occurrence of the cookie name <name> on a "Cookie"
header line from the request, and converts its value to an integer which is
returned. If no name is specified, the first cookie value is returned. When
used in ACLs, all matching names are iterated over until a value matches.
req.fhdr(<name>[,<occ>]) : string
This returns the full value of the last occurrence of header <name> in an
HTTP request. It differs from req.hdr() in that any commas present in the
value are returned and are not used as delimiters. This is sometimes useful
with headers such as User-Agent.
When used from an ACL, all occurrences are iterated over until a match is
found.
Optionally, a specific occurrence might be specified as a position number.
Positive values indicate a position from the first occurrence, with 1 being
the first one. Negative values indicate positions relative to the last one,
with -1 being the last one.
req.fhdr_cnt([<name>]) : integer
Returns an integer value representing the number of occurrences of request
header field name <name>, or the total number of header fields if <name> is
not specified. Like req.fhdr() it differs from res.hdr_cnt() by not splitting
headers at commas.
req.hdr([<name>[,<occ>]]) : string
This returns the last comma-separated value of the header <name> in an HTTP
request. The fetch considers any comma as a delimiter for distinct values.
This is useful if you need to process headers that are defined to be a list
of values, such as Accept, or X-Forwarded-For. If full-line headers are
desired instead, use req.fhdr(). Please carefully check RFC 7231 to know how
certain headers are supposed to be parsed. Also, some of them are case
insensitive (e.g. Connection).
When used from an ACL, all occurrences are iterated over until a match is
found.
Optionally, a specific occurrence might be specified as a position number.
Positive values indicate a position from the first occurrence, with 1 being
the first one. Negative values indicate positions relative to the last one,
with -1 being the last one.
A typical use is with the X-Forwarded-For header once converted to IP,
associated with an IP stick-table.
ACL derivatives :
hdr([<name>[,<occ>]]) : exact string match
hdr_beg([<name>[,<occ>]]) : prefix match
hdr_dir([<name>[,<occ>]]) : subdir match
hdr_dom([<name>[,<occ>]]) : domain match
hdr_end([<name>[,<occ>]]) : suffix match
hdr_len([<name>[,<occ>]]) : length match
hdr_reg([<name>[,<occ>]]) : regex match
hdr_sub([<name>[,<occ>]]) : substring match
req.hdr_cnt([<name>]) : integer
hdr_cnt([<header>]) : integer (deprecated)
Returns an integer value representing the number of occurrences of request
header field name <name>, or the total number of header field values if
<name> is not specified. Like req.hdr() it counts each comma separated
part of the header's value. If counting of full-line headers is desired,
then req.fhdr_cnt() should be used instead.
With ACLs, it can be used to detect presence, absence or abuse of a specific
header, as well as to block request smuggling attacks by rejecting requests
which contain more than one of certain headers.
Refer to req.hdr() for more information on header matching.
req.hdr_ip([<name>[,<occ>]]) : ip
hdr_ip([<name>[,<occ>]]) : ip (deprecated)
This extracts the last occurrence of header <name> in an HTTP request,
converts it to an IPv4 or IPv6 address and returns this address. When used
with ACLs, all occurrences are checked, and if <name> is omitted, every value
of every header is checked. The parser strictly adheres to the format
described in RFC7239, with the extension that IPv4 addresses may optionally
be followed by a colon (':') and a valid decimal port number (0 to 65535),
which will be silently dropped. All other forms will not match and will
cause the address to be ignored.
The <occ> parameter is processed as with req.hdr().
A typical use is with the X-Forwarded-For and X-Client-IP headers.
req.hdr_names([<delim>]) : string
This builds a string made from the concatenation of all header names as they
appear in the request when the rule is evaluated. The default delimiter is
the comma (',') but it may be overridden as an optional argument <delim>. In
this case, only the first character of <delim> is considered.
req.hdr_val([<name>[,<occ>]]) : integer
hdr_val([<name>[,<occ>]]) : integer (deprecated)
This extracts the last occurrence of header <name> in an HTTP request, and
converts it to an integer value. When used with ACLs, all occurrences are
checked, and if <name> is omitted, every value of every header is checked.
The <occ> parameter is processed as with req.hdr().
A typical use is with the X-Forwarded-For header.
req.hdrs : string
Returns the current request headers as string including the last empty line
separating headers from the request body. The last empty line can be used to
detect a truncated header block. This sample fetch is useful for some SPOE
headers analyzers and for advanced logging.
req.hdrs_bin : binary
Returns the current request headers contained in preparsed binary form. This
is useful for offloading some processing with SPOE. Each string is described
by a length followed by the number of bytes indicated in the length. The
length is represented using the variable integer encoding detailed in the
SPOE documentation. The end of the list is marked by a couple of empty header
names and values (length of 0 for both).
*(<str:header-name><str:header-value>)<empty string><empty string>
int: refer to the SPOE documentation for the encoding
str: <int:length><bytes>
req.timer.hdr : integer
Total time to get the client request (HTTP mode only). It's the time elapsed
between the first bytes received and the moment the proxy received the empty
line marking the end of the HTTP headers. This is reported in milliseconds
(ms) and is equivalent to %TR in log-format. See section 8.4 "Timing events"
for more details.
req.timer.idle : integer
This is the idle time before the HTTP request (HTTP mode only). This timer
counts between the end of the handshakes and the first byte of the HTTP
request. This is reported in milliseconds and is equivalent to %Ti in
log-format. See section 8.4 "Timing events" for more details.
req.timer.queue : integer
Total time spent in the queues waiting for a connection slot.
This is reported in milliseconds and is equivalent to %Tw in
log-format. See section 8.4 "Timing events" for more details.
req.timer.tq : integer
total time to get the client request from the accept date or since the
emission of the last byte of the previous response.
This is reported in milliseconds and is equivalent to %Tq in
log-format. See section 8.4 "Timing events" for more details.
req.ver : string
req_ver : string (deprecated)
Returns the version string from the HTTP request, for example "1.1". This can
@ -25676,6 +25656,19 @@ req_ver : string (deprecated)
ACL derivatives :
req.ver : exact string match
request_date([<unit>]) : integer
This is the exact date when the first byte of the HTTP request was received
by HAProxy (log-format alias %tr). This is computed from accept_date +
handshake time (%Th) + idle time (%Ti).
Returns a value in number of seconds since epoch.
<unit> is facultative, and can be set to "s" for seconds (default behavior),
"ms" for milliseconds or "us" for microseconds.
If unit is set, return value is an integer reflecting either seconds,
milliseconds or microseconds since epoch.
It is useful when a time resolution of less than a second is needed.
res.body : binary
This returns the HTTP response's available body as a block of data. Unlike
the request side, there is no directive to wait for the response's body. This
@ -25737,14 +25730,6 @@ scook_cnt([<name>]) : integer (deprecated)
It may be used in tcp-check based expect rules.
res.cook_val([<name>]) : integer
scook_val([<name>]) : integer (deprecated)
This extracts the last occurrence of the cookie name <name> on a "Set-Cookie"
header line from the response, and converts its value to an integer which is
returned. If no name is specified, the first cookie value is returned.
It may be used in tcp-check based expect rules.
res.cook_names([<delim>]) : string
This builds a string made from the concatenation of all cookie names as they
appear in the response (Set-Cookie headers) when the rule is evaluated. The
@ -25754,6 +25739,14 @@ res.cook_names([<delim>]) : string
It may be used in tcp-check based expect rules.
res.cook_val([<name>]) : integer
scook_val([<name>]) : integer (deprecated)
This extracts the last occurrence of the cookie name <name> on a "Set-Cookie"
header line from the response, and converts its value to an integer which is
returned. If no name is specified, the first cookie value is returned.
It may be used in tcp-check based expect rules.
res.fhdr([<name>[,<occ>]]) : string
This fetch works like the req.fhdr() fetch with the difference that it acts
on the headers within an HTTP response.
@ -25852,6 +25845,12 @@ res.hdrs_bin : binary
int: refer to the SPOE documentation for the encoding
str: <int:length><bytes>
res.timer.hdr : integer
It's the time elapsed between the moment the TCP connection was established
to the server and the moment the server sent its complete response headers.
This is reported in milliseconds and is equivalent to %Tr in log-format. See
section 8.4 "Timing events" for more details.
res.ver : string
resp_ver : string (deprecated)
Returns the version string from the HTTP response, for example "1.1". This
@ -25926,6 +25925,18 @@ url : string
url_reg : regex match
url_sub : substring match
url32 : integer
This returns a 32-bit hash of the value obtained by concatenating the first
Host header and the whole URL including parameters (not only the path part of
the request, as in the "base32" fetch above). This is useful to track per-URL
activity. A shorter hash is stored, saving a lot of memory. The output type
is an unsigned integer.
url32+src : binary
This returns the concatenation of the "url32" fetch and the "src" fetch. The
resulting type is of type binary, with a size of 8 or 20 bytes depending on
the source address family. This can be used to track per-IP, per-URL counters.
url_ip : ip
This extracts the IP address from the request's URL when the host part is
presented as an IP address. Its use is very limited. For instance, a
@ -25973,18 +25984,6 @@ urlp_val([<name>[,<delim>[,i]]]) : integer
and converts it to an integer value. This can be used for session stickiness
based on a user ID for example, or with ACLs to match a page number or price.
url32 : integer
This returns a 32-bit hash of the value obtained by concatenating the first
Host header and the whole URL including parameters (not only the path part of
the request, as in the "base32" fetch above). This is useful to track per-URL
activity. A shorter hash is stored, saving a lot of memory. The output type
is an unsigned integer.
url32+src : binary
This returns the concatenation of the "url32" fetch and the "src" fetch. The
resulting type is of type binary, with a size of 8 or 20 bytes depending on
the source address family. This can be used to track per-IP, per-URL counters.
7.3.7. Fetching samples for developers
---------------------------------------