On Wed, 13 Feb 2002, Oleg Ilin wrote:
> Hello Igor,
>
> Wednesday, February 13, 2002, 4:34:27 PM, you wrote:
>
> ..skip..
> >> Но хочется чтобы на сервер могло придти не более 200Kb.
> >> Подскажите пожалуйста, как это сделать?
>
> > Корректно и в общем случае - никак.
>
> > MSIE 4, 5 (и, возможно 6, не проверял) и NN4 считают, что ответ
> > сервера может придти только после того, как они в него всё залили.
> > Если же сервер закрывает сокет раньше, чем они зальют, то они это
> > называют "This page can not be displayed" (MSIE) или network i/o
> > error (NN4). А вот Mozilla понимает и показывает, что ему вернули.
>
> > Что делает Апач ? При получении заголовка с большим телом Апач
> > выдаёт 413 и делает lingering_close, то есть, shutdown(), и в течение
> > 30 секунд читает через 2-двух секундный select() всё, чего ему дали.
> > Соответсвенно, всё что ему успеют залить за 30 секунд, он и прочитает.
> Спасибо за пояснения.
>
> > Что можно сделать ? Уменьшить время ожидания.
> Повлияет ли это на прием валидных по длинне запросов?
Нет, lingering_close делается только, когда нужно закрыть сокет.
> Если нет, то как уменьшить время ожидания?
В 1.3.23 обнаружил параметр MAX_SECS_TO_LINGER, соответственно
при сборке -DMAX_SECS_TO_LINGER=3. Есть ли в более ранних - нужно
смотреть в src/main/http_main.c в районе функции lingering_close().
Кстати, реально число скорее всего будет не 3, а 5 секунд.
По крайней мере, я такое заметил за Апачевским алармом на FreeBSD -
откуда-то появляются две секунды.
> > Squid, кстати, ничего не читает, а просто говорит 413 и закрывает сокет.
> К сожалению, это не вариант.
Ну это просто для информации.
Игорь Сысоев
=============================================================================
= Apache-Talk@lists.lexa.ru mailing list =
Mail "unsubscribe apache-talk" to majordomo@lists.lexa.ru if you want to quit.
= Archive avaliable at http://www.lexa.ru/apache-talk =