Nginx-ru mailing list archive (nginx-ru@sysoev.ru)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Выставлят ь connection close
On Fri, May 15, 2009 at 02:48:02PM +0400, Maxim Dounin wrote:
> Hello!
>
> On Fri, May 15, 2009 at 01:31:28PM +0400, Kirill A. Korinskiy wrote:
>
> > At Fri, 15 May 2009 09:09:38 +0400,
> > Igor Sysoev <is@xxxxxxxxxxxxx> wrote:
> > >
> > >
> > > Это делается в
> > >
> > > ngx_http_chunked_header_filter(ngx_http_request_t *r)
> > > {
> > > ...
> > >
> > > if (r->headers_out.content_length_n == -1) {
> > > if (r->http_version < NGX_HTTP_VERSION_11) {
> > > r->keepalive = 0;
> > >
> > > } else {
> > > r->chunked = 1;
> > > }
> > > }
> > >
> > >
> >
> > как минимум для 204 ответа ставится content_length_n в -1 уже после
> > этого кода.
>
> RFC2616 как бы говорит нам:
>
> 1.Any response message which "MUST NOT" include a message-body (such
> as the 1xx, 204, and 304 responses and any response to a HEAD
> request) is always terminated by the first empty line after the
> header fields, regardless of the entity-header fields present in
> the message.
>
> > Если помнишь ??? я писал про проблемы wget и 'return 204' ??? они идут
> > именно из-за этого.
>
> Я верю что wget не умеет http. Но причём тут nginx?
Скажем так, если какой-нибудь распространённый браузер не умеет http,
то это повод сделать workaround, например, такие workaround'ы есть для MSIE.
Но распространённой ситуации, когда wget'ом забирают 204 ответы, я себе
представить не могу. А для специфичного случая вполне можно обойтись
конфигурацией:
location ... {
return 204;
keepalive_timeout 0;
}
--
Игорь Сысоев
http://sysoev.ru
|