Условие REQ-HEADER, RESP-HEADER

<< Кликните, чтобы показать Содержание >>

Руководство Администратора | CHM EPUB PDF A4/Letter   

Условие 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 или &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"?>
<filter name="HTTP filter" version="1.0">
  <comment>HTTP filter.</comment>
  <table name="main">

 

    <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>