<< Кликните, чтобы показать Содержание >> Условие REQ-HEADER, RESP-HEADER |
Проверяет значение одного из заголовков HTTP-запроса или ответа.
Описание
Это условие проверяет значение заголовка HTTP-запроса на наличие подстроки в строке или на соответствие шаблону wildcard или regexp.
Формат
<c name="req-header" headername="..." op="..." value="..." /> |
---|
или
<c name="resp-header" headername="..." op="..." value="..." /> |
---|
Атрибут "name":
В атрибуте "name" укажите имя условия: name="req-header" или name="resp-header".
req-header
Проверяет заголовки HTTP-запроса
resp-header
Проверяет заголовки HTTP-ответа
Атрибут "headername":
В атрибуте headername="..." укажите имя проверяемого заголовка.
Атрибут "headername":
Строка, с которой сравнивается значение или шаблон для проверки, указывается в атрибуте value="...".
Атрибут "op":
В атрибуте op="..." указывает тип операции сравнения и может принимать значения:
eq или = или ==
Условие выполняется, если значение поля СОДЕРЖИТ указанное значение
ne или != или <>
Условие выполняется, если значение поля НЕ СОДЕРЖИТ указанное значение
wc или wildcard
Условие выполняется, если значение поля соответствует указанному wildcard шаблону
re или regex или regexp
Условие выполняется, если значение поля соответствует указанному regexp шаблону
Для заголовка Content-Length доступны следующие операции:
eq или = или ==
Условие выполняется, если значение поля СОДЕРЖИТ указанное значение
ne или != или <>
Условие выполняется, если значение поля НЕ СОДЕРЖИТ указанное значение
lt или <
Условие выполняется, если размер МЕНЬШЕ указанного числа
gt или >
Условие выполняется, если размер БОЛЬШЕ указанного числа
le или <=
Условие выполняется, если размер МЕНЬШЕ ИЛИ РАВНО указанного числа
ge или >=
Условие выполняется, если размер БОЛЬШЕ ИЛИ РАВНО указанного числа.
Эти операции выполняются со значением заголовка как с ЧИСЛОМ, а не как со строкой.
Атрибут "value":
В атрибуте value="..." укажите проверяемое значение (строка, wildcard или regexp шаблон).
Для заголовка Content-Length для сравнения допускается указывать только числовое значение. |
---|
Число, с которым сравнивается размер, указывается в виде:
<число> или <число>B
Указывает размер в байтах
<число>K
Указывает размер в килобайтах
<число>M
Указывает размер в мегабайтах
<число>G
Указывает размер в гигабайтах.
Пример:
Игнорировать запросы с Content-Length более 100K. Принимать запросы на win.mail.ru и *.yandex.ru.
<?xml version="1.0" encoding="utf-8"?>
<rule enabled="1"> <comment> Ignore requests where Content-Length is more than 100K. </comment> <match> <c name="req-header" headername="Content-Length" op=">" value="100K" /> </match> <action name="drop" /> </rule>
<rule enabled="1"> <comment> Accept requests to win.mail.ru and *.yandex.ru. </comment> <match> <or> <c name="req-header" headername="Host" op="eq" value="win.mail.ru" /> <c name="req-header" headername="Host" op="wc" value="*.yandex.ru" /> </or> </match> <action name="accept" /> </rule> </table> </filter> |
---|