On 2016-07-05 13:33, Maxim Dounin wrote:
A proxy or gateway that receives an obs-fold in a response message
   that is not within a message/http container MUST either discard the
message and replace it with a 502 (Bad Gateway) response, preferably
   with a representation explaining that unacceptable line folding was
   received, or replace each received obs-fold with one or more SP
   octets prior to interpreting the field value or forwarding the
   message downstream.

То есть он по идее должен либо вернуть 502 ошибку, либо преобразовать
перевод каретки в пробел и отдать клиенту. Но он засовывает значения после
LineFold в заголовок Connection:

Как я уже говорил ранее, nginx не умеет обрабатывать line folding,
совсем.  Он просто рассматривает это как заголовки, начинающиеся с
пробела, и отдаёт клиенту в [почти] том виде, в каком получил от
бекенда.  Последующее "склеивание" с другим заголовком - лишь
следствие того, что заголовок специальный, и из-за этого порядок
заголовков в ответе поменялся, и уже ваш клиент, поддерживающий
line folding, засунул дополнительные строки в тот заголовок,
который оказался перед ними.

Допрограммировать в этом месте 502 с ошибкой в логах - возможно,
имеет смысл.
Тогда уж лучше сделать настраиваемым: 502 или склеивать. Не всегда есть возможность контролировать поведение бакенда.

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

Ответить