HTTP_HEADER_T
The HTTP.REQ.HEADER("header name") or HTTP.RES.HEADER("header name") object represents the multiple lines of a particular HTTP header type. This object is also a Text object. Direct Text operations on this object will mostly operate only on the value in the last header line of this type. Some Text operations like CONTAINS have been overridden to operate on values in all the header lines of this type.
This topic lists the expressions that are provided by this class.
Note:Expressions with the *symbol are inherited/promoted from text_t.
AFTER_REGEX(re regex)
The AFTER_REGEX operator in this object overrides the Text AFTER_REGEX operator to operate on all the instances of the current header type. Selects the Text after the text that matches the input regular expression in any instance of the header value. The order in which the header instances will be matched is from the last to the first.
For example: HTTP.REQ.HEADER("etag").AFTER_REGEX(re/KX/) will select "DAPPER" from "KXDAPPER".
Parameters(expressions not allowed):
regex -
Regular Expression
Returns: text_t
* AFTER_STR_ANY(text_tpatset_name)
Selects the Text that is present after the first occurrence of any of the strings that are bound to the patset named by the string argument. If there is no match to any of the strings bound to the patset in the current Text object then the result Text object has 0 length.
The patset cannot have strings longer than 255 characters.
Parameters(expressions not allowed):
patset_name -
Pattern Set Name
Returns: text_t
AFTER_STR(text_ts)
The AFTER_STR operator in this object overrides the Text AFTER_STR operator to operate on all the instances of the current header type. Selects Text after the first occurrence of the input string argument. The order in which the instances of the header are matched is from the last instance to the first.
HTTP/1.1 200 OK\r\n MyHdr: 111abc\r\n Content-Length: 200\r\n MyHdr: 111def\r\n \r\n
Examples: HTTP.RES.HEADER("MyHdr").AFTER_STR("111") selects "def" in the last instance of MyHdr, the one with value "111def". HTTP.RES.HEADER("MyHdr").AFTER_STR("1ab") selects "c" in the first instance of MyHdr, the one with value "abc111".
Parameters(expressions not allowed):
s -
String
Returns: text_t
* APPEND(bool_atb)
Appends the given boolean's string representation to the current string.
Parameters:
b -
the boolean value to append.
Returns: text_t
* APPEND(double_ati)
Appends the given double's string representation to the current string.
Parameters:
i -
the double value to append.
Returns: text_t
* APPEND(ip_address_ataddr)
Appends the given IPv4's string representation to the current string.
Parameters:
addr -
the IPv4 address to append.
Returns: text_t
* APPEND(num_ati)
Appends the given number's string representation to the current string.
Parameters:
i -
the number value to append.
Returns: text_t
* APPEND(time_att)
Appends the given time's string representation to the current string.
Parameters:
t -
the time value to append.
Returns: text_t
* APPEND(unsigned_long_ati)
Appends the given unsigned long's string representation to the current string.
Parameters:
i -
the unsigned long value to append.
Returns: text_t
* APPEND(ipv6_address_ataddr)
Appends the given IPv6's string representation to the current string.
Parameters:
addr -
the IPv6 address to append.
Returns: text_t
* APPEND(ipv6_subnet_ataddr)
Appends the given IPv6 subnet's string representation to the current string.
Parameters:
addr -
the IPv6 subnet to append.
Returns: text_t
* APPEND(mac_address_ataddr)
Appends the given MAC's string representation to the current string.
Parameters:
addr -
the MAC address to append.
Returns: text_t
* APPEND(text_tstr)
Appends the given string to the current string.
Parameters:
str -
the string to append.
Returns: text_t
* APPEND(time_att)
Appends the given time's string representation to the current string.
Parameters:
t -
the time value to append.
Returns: text_t
* B64DECODE
Decodes the selected text using base64 decoding.
For example, the string "TWFu" is converted to "Man"
Returns: text_t
* B64ENCODE
Encodes the selected text using base64 encoding.
For example, the string "Man" is converted to "TWFu"
Returns: text_t
BEFORE_REGEX(re regex)
The BEFORE_REGEX operator in this object overrides the Text BEFORE_REGEX operator to operate on all the instances of the current header type. Selects the Text before the text that matches the input regular expression in any instance of the header value. The order in which the header instances will be matched is from the last to the first.
For example: HTTP.RES.HEADER("content-type").BEFORE_REGEX(re#/#) will select "text" from "text/plain".
Parameters(expressions not allowed):
regex -
Regular Expression
Returns: text_t
* BEFORE_STR_ANY(text_tpatset_name)
Selects the Text that is present before the first occurrence of any of the strings that are bound to the patset or datasetnamed by the string argument. If there is no match to any of the strings bound to the patset in the current Text object then the result Text object has 0 length.
The patset cannot have strings longer than 255 characters.
Parameters(expressions not allowed):
patset_name -
Pattern Set Name
Returns: text_t
BEFORE_STR(text_ts)
The BEFORE_STR operator in this object overrides the Text BEFORE_STR operator to operate on all the instances of the current header type. Selects Text before the first occurrence of the input string argument. The order in which the instances of the header are matched is from the last instance to the first.
HTTP/1.1 200 OK\r\n MyHdr: abc111\r\n Content-Length: 200\r\n MyHdr: def111\r\n \r\n
Examples: HTTP.RES.HEADER("MyHdr").BEFORE_STR("111") selects "def" in the last instance of MyHdr, the one with value "def111". HTTP.RES.HEADER("MyHdr").BEFORE_STR("bc1") selects "a" in the first instance of MyHdr, the one with value "abc111".
Parameters(expressions not allowed):
s -
String
Returns: text_t
* BETWEEN(text_tstart, text_tend)
Results in Boolean TRUE value if length of the Text object is greater than or equal to the sum of the Start and End argument lengths and if the prefix of the Text object matches the Start string argument and if the Suffix of the Text object matches the End string argument.
Parameters:
start -
Start
end -
End
Returns: bool_at
* BIN_DECODE(binary_encoding_eencoding)
Decode the encoded input into its original byte sequence. An incorrectly enooded input will result in an Undef error.
Parameters(expressions not allowed):
encoding -
specifies how the bytes are encoded.
Returns: text_t
* BIN_ENCODE(binary_encoding_eencoding)
Encode the input byte sequence. Note that BIN_ENCODE(hex_colons) is equivalent to BLOB_TO_HEX().
Parameters(expressions not allowed):
encoding -
specifies how the bytes are to be encoded.
Returns: text_t
* BLOB_TO_HEX
Convert to hexadecimal representation and select text.
For example, the byte string abc is converted to 61:62:63.
Returns: text_t
* COMPARE(text_ts)
Results in a Number Value which is the result of comparison of the input argument with the Text object. The result is greater than 0 if the Text object is lexicographically greater than the argument. The result is 0 if the Text object and the argument match. The result is less than 0 if the Text object is lexicographically lesser than the argument.
Parameters:
s -
String
Returns: num_at
CONTAINS_ANY(text_tpatclass_name)
The CONTAINS_ANY in this object overrides the Text CONTAINS_ANY operator to operate on all the instances of the current header type. Returns Boolean TRUE if any of the patterns associated with input patclass is present in any instance of the header value.
Parameters(expressions not allowed):
patclass_name -
Patclass Name
Returns: bool_at
CONTAINS_INDEX(text_tpatclass_name)
The CONTAINS_INDEX in this object overrides the Text CONTAINS_INDEX operator to operate on all the instances of the current header type. Returns the index of the matching pattern associated with input patclass that is present in any instance of the header value.
Parameters(expressions not allowed):
patclass_name -
Patclass Name
Returns: num_at
CONTAINS(text_ts)
The CONTAINS in this object overrides the Text CONTAINS operator to operate on all the instances of the current header type. Returns Boolean TRUE if the input Pattern String is present in any instance of the header value.
GET / HTTP/1.1\r\n Host: abc.com\r\n MyHdr: abc\r\n Content-Length: 200\r\n MyHdr: def\r\n
HTTP/1.1 200 OK\r\n MyHdr: abc\r\n Content-Length: 200\r\n MyHdr: def\r\n \r\n
Examples: HTTP.RES.HEADER("MyHdr").CONTAINS("de") is TRUE. HTTP.RES.HEADER("MyHdr").CONTAINS("bcd") is FALSE. HTTP.REQ.HEADER("MyHdr").CONTAINS("de") is TRUE. HTTP.REQ.HEADER("MyHdr").CONTAINS("bcd") is FALSE. The system does not concatenate the different values.
Parameters(expressions not allowed):
s -
Pattern String
Returns: bool_at
COUNT
An HTTP header can have multiple occurrences. COUNT will return a Number containing how many headers of the current type exist.
HTTP/1.1 200 OK\r\n MyHdr: abc\r\n Content-Length: 200\r\n MyHdr: def\r\n \r\n
For example: HTTP.RES.HEADER("MyHdr").COUNT will return Number 2. The system does not keep track of more than 15 HTTP headers. The result will be undefined if there are more than 15 instances of the header.
Returns: num_at
* CRC32
Returns a 32-bit integer computed by applying a CRC (cyclic redundancy check) function to the selected text. This is the CRC function used by Ethernet, MPEG-2, PKZIP, GZIP, PNG, and many other applications. For example, the expression to compute the CRC value of the (first 1000 bytes of the) body of an HTTP request is: HTTP.REQ.BODY(1000).CRC32
Returns: num_at
* DECODE_USING_TEXT_MODE
Decodes the selected text using the currently configured text encoding methods like URLENCODED, BACKSLASH_ENCODED, PLUS_AS_SPACE, NOURLENCODED, NO_BACKSLASH_ENCODED and NO_PLUS_AS_SPACE. Text encoding methods are set using SET_TEXT_MODE method.
Returns: text_t
* DECRYPT
Decrypt the selected base64-encoded ciphertext using the configured encryptionParams.
Returns: text_t
* DECRYPT(binary_encoding_ein_encoding)
Decrypt the selected ciphertext using the configured encryptionParams.
Parameters(expressions not allowed):
in_encoding -
specifies how the input ciphertext is encoded.
If the ciphertext is not encoded as specified, causes an Undef error.
Returns: text_t
* DECRYPT(text_tencryptionKey)
Decrypt the selected base64-encoded encrypted bytes using the configured encryption key.
Parameters(expressions not allowed):
encryptionKey -
identifies the encryptionKey object
to provide the cipher method, mode, padding, key, encrypted format
and optional initialization vector (IV).
Returns: text_t
* DECRYPT(text_tencryptionKey, binary_encoding_ein_encoding)
Decrypt the selected base64-encoded encrypted bytes using the configured encryption key.
Parameters(expressions not allowed):
encryptionKey -
identifies the encryptionKey object
to provide the cipher method, mode, padding, key, encrypted format,
and optional initialization vector (IV).
in_encoding -
specifies how the input ciphertext is encoded.
If the ciphertext is not encoded as specified, causes an Undef error.
Returns: text_t
* DIGEST(digest_method_emethod)
Returns a byte sequence computed by applying the the specified message digest method to the selected text.
Parameters(expressions not allowed):
method -
digest method to apply to the input text
Returns: text_t
* ENCRYPT
Encrypt the selected plaintext bytes using the configured encryptionParams. The resulting ciphertext is base64-encoded.
Returns: text_t
* ENCRYPT(binary_encoding_eout_encoding)
Encrypt the selected plaintext bytes using the configured encryptionParams.
Parameters(expressions not allowed):
out_encoding -
specifies how the resulting ciphertext is encoded.
Returns: text_t
* ENCRYPT(text_tencryptionKey)
Encrypt the selected cleartext bytes using the configured encryption key.
Parameters(expressions not allowed):
encryptionKey -
identifies the encryptionKey object
to provide the cipher method, mode, padding, key, encrypted format
and optional initialization vector (IV).
Returns: text_t
* ENCRYPT(text_tencryptionKey, binary_encoding_eout_encoding)
Encrypt the selected cleartext bytes using the configured encryption key.
Parameters(expressions not allowed):
encryptionKey -
identifies the encryptionKey object
to provide the cipher method, mode, padding, key, encrypted format
and optional initialization vector (IV).
out_encoding -
specifies how the resulting ciphertext is encoded.
Returns: text_t
* ENDSWITH_ANY(text_tpatset_name)
Results in Boolean TRUE value if the Text ends with any of the strings that are bound to the patset or dataset named by the string argument.
Parameters(expressions not allowed):
patset_name -
Pattern Set Name
Returns: bool_at
* ENDSWITH_INDEX(text_tpatset_name)
Returns the numerical index of the matching string, if the Text ends with any of the strings that are bound to the patset or dataset named by the string argument. Returns 0 if there is no match.
Parameters(expressions not allowed):
patset_name -
Pattern Set Name
Returns: num_at
* ENDSWITH(text_tend)
Results in Boolean TRUE value if a suffix of the Text object matches the string argument.
Parameters:
end -
String
Returns: bool_at
EQUALS_ANY(text_tpatset_name)
The EQUALS_ANY in this object overrides the Text EQUALS_ANY operator to operate on all the instances of the current header type. Returns Boolean TRUE if any of the patterns associated with input patset is equal to any instance of the header value.
Parameters(expressions not allowed):
patset_name -
Patset Name
Returns: bool_at
EQUALS_INDEX(text_tpatset_name)
The EQUALS_INDEX in this object overrides the Text EQUALS_INDEX operator to operate on all the instances of the current header type. Returns the index of the matching pattern associated with input patset is equal to any instance of the header value.
Parameters(expressions not allowed):
patset_name -
Patset Name
Returns: num_at
* EQ(text_ts)
Results in Boolean TRUE value if the Text object matches the input argument.
Parameters:
s -
String
Returns: bool_at
EXISTS
Returns TRUE if an instance of the current header type exists.
Returns: bool_at
* GET_SIGNED16(uint n, endian_eendianness)
Get the 16-bit signed binary integer at the given offset.
Parameters(expressions not allowed):
n -
Offset in bytes
endianness -
Select little or big endian
Returns: num_at
* GET_SIGNED32(uint n, endian_eendianness)
Get the 32-bit signed binary integer at the given offset.
Parameters(expressions not allowed):
n -
Offset in bytes
endianness -
Select little or big endian
Returns: num_at
* GET_SIGNED8(uint n)
Get the 8-bit signed binary integer at the given offset.
Parameters:
n -
Offset in bytes
Returns: num_at
* GET_UNSIGNED16(uint n, endian_eendianness)
Get the 16-bit unsigned binary integer at the given offset.
Parameters(expressions not allowed):
n -
Offset in bytes
endianness -
Select little or big endian
Returns: num_at
* GET_UNSIGNED32(uint n, endian_eendianness)
Get the 32-bit unsigned binary integer at the given offset.
Parameters(expressions not allowed):
n -
Offset in bytes
endianness -
Select little or big endian
Returns: unsigned_long_at
* GET_UNSIGNED64(uint n, endian_eendianness)
Get the 64-bit unsigned binary integer at the given offset.
Parameters(expressions not allowed):
n -
Offset in bytes
endianness -
Select little or big endian
Returns: unsigned_long_at
* GET_UNSIGNED8(uint n)
Get the 8-bit unsigned binary integer at the given offset.
Parameters:
n -
Offset in bytes
Returns: num_at
* GET_URLSET_METADATA(text_turlset_name)
Returns metadata value corresponding to pattern in the urlset. The matching is case-insensitive for domains, but case-sensitive for paths. If no pattern is matched within the urlset, the return value is a NULL string.
For example:
- HTTP.REQ.HOST.APPEND(HTTP.REQ.URL).GET_URLSET_METADATA("urlset_forbidden") returns value when the combined domain and URL is looked up in the urlset whose name is "urlset_forbidden".
Parameters(expressions not allowed):
urlset_name -
urlset name
Returns: text_t