Welcome! Log In Create A New Profile

Advanced

Re[2]: Зацикливание на редиректе

August 07, 2017 08:28AM
Ну, хорошо. Пусть в моем примере вообще нет хоста.
Тогда что такое https://test.com ? Давайте назовем строкой запроса, суть проблемы от этого не меняется.
В документации так:
" $host
            в порядке приоритета: имя хоста из строки запроса, или имя хоста из поля “Host” заголовка запроса.....,"

Объясните мне, пожалуйста, что понимать как "имя хоста из строки запроса" и "имя хоста из поля “Host” заголовка запроса".
Желательно с примером для курла, как особо одаренному.

Далее, Вы приводите пример с netcat. Аналогично можно использовать telnet.
Только ведь после получения Location ему нужно следовать. Полученный Location: http://nginx.org/ куда возвращает? На HEAD http://nginx.org/ HTTP/1.1.

То же самое, только не вводить построчно:

curl -ILH 'Host: www.nginx.org' https://nginx.org/  

И точно такое же зацикливание.
Пусть мои примеры неверны. Но работают, и приводят к зацикливанию при псевдо-валидном запросе.
По большому счету, меня интересует только, как это побороть.


>Понедельник, 7 августа 2017, 13:37 +03:00 от Валентин Бартенев <vbart@nginx.com>:
>
>On Monday 07 August 2017 13:25:32 Валентин Бартенев wrote:
>> On Monday 07 August 2017 09:01:39 CoDDoC wrote:
>> >
>> > Спасибо.
>> >
>> > Только Вы говорите об URI "/", а вопрос был об URL, точнее - о зацикливании, связанном с неправильной (ИМХО) интерпретацией в ngx переменной $host. Как она ДОЛЖНА обрабатываться - сказано в доке, что имеем ПО ФАКТУ - в моем примере.
>>
>> Ещё раз. Вы неправильно интерпретируете команду curl, отсюда и считаете,
>> что поведение nginx отличается от описанного в документации. Ваш пример
>> неверен.
>>
>> И далее на этом неверном предположении строите все остальные выводы.
>>
>> Вы пишите:
>>
>> | Вот такой случай:
>> | curl -ILH 'Host: www.test.com ' https://test.com
>> |
>> | Если бы переменная $host получила значение в порядке приоритета, оно было бы test.com (имя хоста из строки запроса).
>>
>> Нет не было бы. Потому что в строке запроса, которую отправляет данная
>> команда curl нет "test.com". Там нет вообще хоста.
>>
>[..]
>
>
>Вот наглядный пример, всё работает как описано
>в документации и должно быть по RFC:
>
>
>% netcat nginx.org 80
>HEAD http://nginx.org/ HTTP/1.1
>Host: www.nginx.org
>
>HTTP/1.1 200 OK
>Server: nginx/1.13.3
>Date: Mon, 07 Aug 2017 10:34:37 GMT
>Content-Type: text/html; charset=utf-8
>Content-Length: 6680
>Last-Modified: Tue, 11 Jul 2017 15:45:07 GMT
>Connection: keep-alive
>Keep-Alive: timeout=15
>ETag: "5964f283-1a18"
>Accept-Ranges: bytes
>
>HEAD / HTTP/1.1
>Host: www.nginx.org
>
>HTTP/1.1 301 Moved Permanently
>Server: nginx/1.13.3
>Date: Mon, 07 Aug 2017 10:34:53 GMT
>Content-Type: text/html
>Content-Length: 185
>Connection: keep-alive
>Keep-Alive: timeout=15
>Location: http://nginx.org/
>
>_______________________________________________
>nginx-ru mailing list
>nginx-ru@nginx.org
>http://mailman.nginx.org/mailman/listinfo/nginx-ru

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

Зацикливание на редиректе

CoDDoC August 03, 2017 05:16AM

Re: Зацикливание на редиректе

Валентин Бартенев August 05, 2017 02:48PM

Re[2]: Зацикливание на редиректе

CoDDoC August 07, 2017 02:12AM

Re: Зацикливание на редиректе

Валентин Бартенев August 07, 2017 06:26AM

Re: Зацикливание на редиректе

Валентин Бартенев August 07, 2017 06:38AM

Re[2]: Зацикливание на редиректе

CoDDoC August 07, 2017 08:28AM

Re: Зацикливание на редиректе

Валентин Бартенев August 07, 2017 09:14AM

Re[2]: Зацикливание на редиректе

CoDDoC August 08, 2017 01:22AM

Re: Зацикливание на редиректе

Иван August 08, 2017 06:00AM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 235
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready