Выставлять connection close
Kirill A. Korinskiy
catap+nginx at catap.ru
Sat May 16 04:29:09 MSD 2009
At Sat, 16 May 2009 04:13:49 +0400,
Maxim Dounin <mdounin at mdounin.ru> wrote:
> > Т.е. я понимаю что:
> >
> > - не писать content-length валидно для запросов без тела
>
> Да. А писать - невалидно, причём "MUST NOT".
>
А есть ли разница между не имеет тело и имеет нулевой длины?
> > - игнорировать тело валидно для запросов у которого тела не может
> > быть. Т.е. его может послать сервер, например слова No Content — но
> > их клиент должен игнорировать.
>
> Угу. Только если скажем в ответ на HEAD или у 204-го ответа
> вернули тело - это мусор в протоколе, и keepalive ушёл в лес.
> Единственное разумное действие клиента в данной ситуации -
> куда-нибудь выругаться и закрыть соединение.
>
Но если клиенту сказали что тело будет 302 октета, и их передали —
хотя их там быть не должно — клиент должен тело проигнорировать. Я не
думаю что это мусор, ага?
> > во всем этом бреде (я про http, ага) слишком много противоречий и как
> > интерпретируют их авторы потенциального клиента — не известно.
> >
> > Все что я предлагаю — это для перестраховки слать Content-Length: 0
> > когда нет тела, что бы клиент который ждет тело длинной которой
> > сказали или fin тоже остался доволен.
>
> См. моё предыдущее письмо - это невалидно, и может иметь
> слабопредсказуемые последствия.
>
> При текущем состоянии поддержки 204 в клиентах - использовать его
> можно только в строго контроллируемых условиях, при необходимости
> исправляя баги в клиентах. Пытаться делать workaround'ы - себе
> дороже, и может выйти боком в самых неожиданных местах.
>
Я пока нашел один клиент с кривой поддержкой 204 - это wget. У
остальных оно идентичное — так что не все так плохо.
Проблема в том что мне нужно именно поведение No Content.
--
wbr, Kirill
More information about the nginx-ru
mailing list