ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: порядок прохождения http-фаз сервера



Hello!

On Tue, Mar 19, 2013 at 03:25:40PM +0400, Oleg wrote:

> On Tue, Mar 19, 2013 at 02:55:21PM +0400, Maxim Dounin wrote:
> > Hello!
> > 
> > Так, насколько я понимаю, будет мусор на выходе - сначала ответ 
> > 302 без тела, а потом ответ на исходный запрос.  Посмотрите 
> > telnet'ом на ответ.
> 
>   Да :-). Я это предположил, но проверить забыл.
>   Какие-то символы 'ba' в ответе странные:

Символы 'ba' - это chunked transfer encoding, который используется 
потому, что Content-Length ответа не известен на момент отправки 
заголовков.  Странно, что это единственная вылезающая проблема.

[...]

> > Для access-фазы проще всего добавить заголовок location, и вернуть 
> > NGX_HTTP_TEMPORARY_REDIRECT (BTW, хочется возвращать именно 307?).  
> > Собственно, так же, как и для content-фазы, ибо там есть 
> > специальная обработка NGX_HTTP_*.  Как-то так (выдержка из 
> > ngx_http_static_module.c):
> > 
> >     ngx_http_clear_location(r);
> > 
> >     r->headers_out.location = ngx_palloc(r->pool, sizeof(ngx_table_elt_t));
> >     if (r->headers_out.location == NULL) {
> >         return NGX_ERROR;
> >     }
> > 
> >     r->headers_out.location->value.len = len;
> >     r->headers_out.location->value.data = location;
> > 
> >     return NGX_HTTP_TEMPORARY_REDIRECT;
> 
>   Т.е. устанавливать r->headers_out.status и делать ngx_http_send_header(r)
> необязательно?

Нет, возврата NGX_HTTP_TEMPORARY_REDIRECT - достаточно.

-- 
Maxim Dounin
http://nginx.org/en/donation.html

_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://mailman.nginx.org/mailman/listinfo/nginx-ru


 




Copyright © Lexa Software, 1996-2009.