<div dir="ltr">>А если не прикидываться браузером, который умеет websocket - не полегчает<br>>ли?<br><div class="gmail_extra">Нет, эта строка максимум влияет на то что останется в логах сервера</div><div class="gmail_extra"><br clear="all"><div><div class="gmail_signature"><div dir="ltr"><div><br></div><div>>«Бесконечно» — это как именно бесконечно? В заголовках ответа есть Content-Length? >Есть, но не соответствует правде? Или нет? Или нет, но внезапно есть Upgrade: >WebSocket? ;)<br>>Если там нормальный документ, просто слишком большой, чтобы его принимать, >достаточно повесить обработчик на on_header и возвращать из него 0, если что-то не >устраивает:<br></div><div>На заголовки Content-Length рассчитывать не приходится: зачастую неправильные они или вообще их нет.</div><div>В данном конкретно случае content-lenght нет</div><div>Вот этот случай:</div><div><a href="http://avtorradio.ru/">http://avtorradio.ru/</a><br></div><div>:))</div><div><br></div><div><br></div><div>--</div><div>Павел</div></div></div></div>
<br><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><br>
<br><br>
<br>
--<br>
Best regards,<br>
Andrey Kopeyko <<a href="mailto:andrey@kopeyko.ru">andrey@kopeyko.ru</a>><br>
<br>
------------------------------<br>
<br>
Message: 5<br>
Date: Fri, 11 Dec 2015 15:03:30 +0200<br>
From: Oleg Alistratov <<a href="mailto:ali@ali.org.ua">ali@ali.org.ua</a>><br>
To: Moscow.pm group <<a href="mailto:moscow-pm@pm.org">moscow-pm@pm.org</a>><br>
Subject: Re: [Moscow.pm] AnyEvent::HTTP как ограничить<br>
        размер ответа?<br>
Message-ID: <<a href="mailto:2484231449839010@web20j.yandex.ru">2484231449839010@web20j.yandex.ru</a>><br>
Content-Type: text/plain; charset=utf-8<br>
<br>
<br>
<br>
11.12.2015, 14:31, "Павел Купцов" <<a href="mailto:pavel@kuptsov.info">pavel@kuptsov.info</a>>:<br>
> Коллеги, вот вопрос по теме рассылки есть, т.е. по perl :)<br>
><br>
> Кто пользует у себя сабж - в частности его метод http_get,<br>
> как решаете вопрос с ограничением размера ответа сервера?<br>
> А то у меня попадаются в запросах сайты которые бесконечно отдают text/html, в итоге скрипт не заканчивается по таймауту, а все это дело принимает в память, что ведет к ее исчерпанию.<br>
<br>
«Бесконечно» — это как именно бесконечно? В заголовках ответа есть Content-Length? Есть, но не соответствует правде? Или нет? Или нет, но внезапно есть Upgrade: WebSocket? ;)<br>
<br>
Если там нормальный документ, просто слишком большой, чтобы его принимать, достаточно повесить обработчик на on_header и возвращать из него 0, если что-то не устраивает:<br>
<br>
            http_get $url,<br>
            on_header => sub {<br>
                my ($headers) = @_;<br>
                return ($headers->{'content-length'} > 16384) ? 0 : 1;<br>
            },<br>
            sub { ... }<br>
<br>
<br>
> Вот на сейчас у меня примерно так:<br>
>  http_get $url,<br>
><br>
>       headers    => {<br>
>         'user-agent' => 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.36',<br>
>       },<br>
><br>
>       on_header => sub {<br>
>       $_[0]{"content-type"} =~ /^text\/html\s*(?:;|$)/<br>
>         },<br>
><br>
>       timeout => 20,<br>
><br>
>       sub {<br>
>         my ( $body, $hdr ) = @_;<br>
><br>
>         if ( $hdr->{Status} =~ /^2/ ) {<br>
>             say "OK";<br>
>         }<br>
>         else {<br>
>             say "Error: $hdr->{Status}";<br>
>         }<br>
><br>
> Пока только вижу вариант с установкой обработчика на on_body - но не нашел живых примеров. Если подкините немного - мои бесконечные благодарности :)))<br>
><br>
> --<br>
> Павел<br>
<br>
<br>
--<br>
Oleg Alistratov<br>
<br>
<br>
------------------------------<br>
<br>
Subject: Нижний колонтитул дайджеста<br>
<br>
_______________________________________________<br>
Moscow-pm mailing list<br>
<a href="mailto:Moscow-pm@pm.org">Moscow-pm@pm.org</a><br>
<a href="http://mail.pm.org/mailman/listinfo/moscow-pm" rel="noreferrer" target="_blank">http://mail.pm.org/mailman/listinfo/moscow-pm</a><br>
<br>
<br>
------------------------------<br>
<br>
Конец Дайджест списка рассылки Moscow-pm; том 98, выпуск 82<br>
***********************************************************************************************<br>
</blockquote></div><br></div></div>