Re: Не отдается картинка - client sent too long header line
Gena Makhomed
gmm at csdoc.com
Thu Aug 9 18:57:13 UTC 2012
On 09.08.2012 20:29, Maxim Dounin wrote:
>>> Приходит не 200, приходит HTTP/0.9 ответ, потому как у nginx'а
>>> кончается буфер и он не знает, какой протокол использовал запрос - и
>>> предполагает минимальный из возможных.
причем, при таком ответе: Connection #0 to host www.cnn.com left intact
- что не соответствует HTTP/0.9, там еще не было keep-alive соединений.
( да, на www.cnn.com тоже установлен Server: nginx, как оказалось... )
наверное мало веб-клиентов сейчас смогут понять ответ по протоколу
HTTP/0.9, даже если он будет корректно реализован на стороне nginx.
например, в новых версиях python поддержку HTTP 0.9 уже выбросили.
> сейчас обсуждается вопрос собственно ответа 414, когда
> кончился буфер на чтении uri.
например, гугловский веб-сервер GFE/2.0 в такой ситуации считает,
что минимальная версия протокола - это HTTP/1.0, а не HTTP/0.9
и отвечает по HTTP/1.0 на запрос от curl по протоколу HTTP/1.1
$ curl -v $(perl -e 'print "http://www.google.com/","414test"x2000')
HTTP/1.0 414 Request-URI Too Large
Server: GFE/2.0
$ curl -v $(perl -e 'print "http://www.google.com/","413test"x9000')
HTTP/1.0 413 Request Entity Too Large
Server: GFE/2.0
=====================================================================
On 09.08.2012 19:00, Maxim Dounin wrote:
> Код ответа - 414. Но поскольку ответ отправляется по протоколу
> HTTP/0.9, в котором самого понятия "код ответа" нет, клиент его
> не видит.
не все клиенты, которые понимают ответ HTTP/1.х смогут понять HTTP/0.9
и со временем таких клиентов, которые не поддерживают архаичные версии
HTTP протокола будет все больше. может быть лучше отвечать по HTTP/1.0
и сразу закрывать соединение с клиентом ?
--
Best regards,
Gena
Подробная информация о списке рассылки nginx-ru