|
<< Кликните, чтобы показать Содержание >> Фильтрация больших объектов HTTP |
Задача
Иногда по протоколу HTTP происходит передача очень больших объектов (закачка файлов, просмотр фильмов онлайн). При большом количестве таких объектов, передаваемых одновременно, EtherSensor может потреблять большое количество оперативной памяти. Такая ситуация может приводить к общей деградации производительности EtherSensor.
Необходимо с помощью фильтров отсекать большие HTTP-объекты и удалять их до начала анализа.
Описание логики решения
Для удаления больших HTTP-объектов до их полного анализа (и загрузки для этого в память целиком) необходимо применить HTTP-фильтр. Для проверки размера HTTP-запроса или ответа следует использовать условие "size", которое проверяет размер и запроса и ответа.
Решение
Например, файл фильтра HTTP-протокола может выглядеть так:
<?xml version="1.0" encoding="utf-8"?> <filter name="HTTP filter" version="1.0">
<table name="main">
<rule enabled="1"> <comment> The rule stops processing HTTP objects for which the request or response size is greater than 1MB. </comment> <match> <c name="size" op="gt" value="1M"/> </match> <action name="drop" /> </rule>
<rule enabled="true"> <action name="accept" /> </rule> </table> </filter> |
|---|
Подробное описание условий фильтрации HTTP-запросов "size" смотрите в разделе Условие REQ-SIZE, RESP-SIZE, SIZE.
Комментарии и общие рекомендации
1. Вместо условия "size", которое проверяет и размер запроса и размер ответа, можно применять условия "req-size" (для проверки размера только HTTP-запроса) или "resp-size" (для проверки размера только HTTP-ответа).