Re: баг сафари на http/2

Илья Шипицин chipitsine на gmail.com
Вт Окт 20 11:52:00 UTC 2015


выкрутились таким способом:

map $http_content_length $http2_content_length {
'' 0;
default $http_content_length;

}



и при проксировании:


proxy_set_header Content-Length $http2_content_length;


20 октября 2015 г., 15:53 пользователь Илья Шипицин <chipitsine на gmail.com>
написал:

> кажется, я ввел вас в заблуждение.
> сафари действительно забывает добавить Content-Length в случае http/2, а
> 411 отвечает бекенд (iis).
> вопрос снимается
>
> 20 октября 2015 г., 15:39 пользователь Ruslan Ermilov <ru на nginx.com>
> написал:
>
> On Tue, Oct 20, 2015 at 03:13:56PM +0500, Илья Шипицин wrote:
>> > забыл уточнить - баг воспроизводится на iOS9 и Mac OS 10.11
>> >
>> > 20 октября 2015 г., 15:00 пользователь Илья Шипицин <
>> chipitsine на gmail.com>
>> > написал:
>> >
>> > > Добрый день!
>> > >
>> > > налетели на ситуацию
>> > >
>> > > 1) браузер сафари (без разницы - десктопный или мобильный)
>> > > 2) включен http2
>> > > 3) отправляется POST с пустым телом
>> > > 4) запрос проксируется с nginx на http-апстрим
>> > >
>> > > в результате получается, что сафари, видя, что тело пустое - не
>> добавляет
>> > > Content-Length, а nginx, видя, что Content-Length отсутствует -
>> возвращает
>> > > 411
>> > >
>> > > давайте с этим что-нибудь сделаем ?
>> > >
>> > > стенд для воспроизведения бага: https://http2.skbkontur.ru
>> > >
>> > > Илья Шипицин
>>
>> На основании чего сделан вывод о том, что это имеет какое-либо
>> отношение к HTTP/2?
>>
>> С обычным HTTP POST-запросом на сайте наблюдается такое же поведение:
>>
>> $ curl -v --data '' -H 'content-length:' http://http2.skbkontur.ru/
>> * Connected to http2.skbkontur.ru (46.17.201.207) port 80 (#0)
>> > POST / HTTP/1.1
>> > Host: http2.skbkontur.ru
>> > User-Agent: curl/7.43.0
>> > Accept: */*
>> > Content-Type: application/x-www-form-urlencoded
>> >
>> < HTTP/1.1 411 Length Required
>> < Server: nginx
>> < Date: Tue, 20 Oct 2015 10:35:48 GMT
>> < Content-Type: text/html; charset=us-ascii
>> < Content-Length: 344
>>
>> nginx по собственной воле никогда не возвращает 411, так что это
>> скорее всего проделки вашего бэкенда.
>>
>> _______________________________________________
>> nginx-ru mailing list
>> nginx-ru на nginx.org
>> http://mailman.nginx.org/mailman/listinfo/nginx-ru
>>
>
>
----------- следущая часть -----------
Вложение в формате HTML было извлечено…
URL: <http://mailman.nginx.org/pipermail/nginx-ru/attachments/20151020/7e3de999/attachment.html>


Подробная информация о списке рассылки nginx-ru