Re: патч для Connection: Keep-Alive

Илья Шипицин chipitsine at gmail.com
Tue May 14 12:15:05 UTC 2013


14 мая 2013 г., 17:41 пользователь Maxim Dounin <mdounin at mdounin.ru> написал:
> Hello!
>
> On Tue, May 14, 2013 at 02:24:31PM +0600, Илья Шипицин wrote:
>
>> Добрый день!
>>
>> предлагаю оставить только "Connection: Keep-Alive" в случае HTTP/1.0
>> во всех остальных случаях предлагаю не отдавать никакой Connection.
>>
>> Аналогичным образом работает IIS.
>
> Если заголовок Keep-Alive в ответе есть, то в заголовке Connection

насколько я могу судить по rfc 2616:

   The following HTTP/1.1 headers are hop-by-hop headers:

      - Connection
      - Keep-Alive
     ......

и далее

   HTTP/1.1 proxies MUST parse the Connection header field before a
   message is forwarded and, for each connection-token in this field,
   remove any header field(s) from the message with the same name as the
   connection-token.


т.е. в ответе заголовок заголовок Keep-Alive может появиться только,
если мы сами его добавим ?

> он должен также присутствовать.  Так что в таком виде патч
> как минимум некорректен.

во всех случаях, когда добавлялся Keep-Alive: timeout, добавлялся
также и Connection. не вижу ничего некорректного. можете уточнить ?

другое дело, что я накосячил и не добавлял Keep-Alive: timeout там,
где предполагалось. да, признаю ошибку. вложил новый патч.

>
>> еще есть вопрос, в каких условиях должен срабатывать код
>>
>>         if (clcf->keepalive_header) {
>>             len += sizeof("Keep-Alive: timeout=") - 1 + NGX_TIME_T_LEN + 2;
>>         }
>>
>>
>> в файле src/http/ngx_http_header_filter_module.c, не нашел, где
>> задается условие clcf->keepalive_header
>
> Указатель clcf - это ссылка на конфигурацию ngx_http_core_module,
> там и задётся.  Значение зависит от второго параметра директивы
> keepalive_timeout, см. http://nginx.org/r/keepalive_timeout/ru.

спасибо. не понял этот момент сразу.

>
> --
> Maxim Dounin
> http://nginx.org/en/donation.html
>
> _______________________________________________
> nginx-ru mailing list
> nginx-ru at nginx.org
> http://mailman.nginx.org/mailman/listinfo/nginx-ru
-------------- next part --------------
A non-text attachment was scrubbed...
Name: keepalive.patch
Type: application/octet-stream
Size: 3126 bytes
Desc: not available
URL: <http://mailman.nginx.org/pipermail/nginx-ru/attachments/20130514/a5fdad25/attachment.obj>


Подробная информация о списке рассылки nginx-ru