Welcome! Log In Create A New Profile

Advanced

Re[2]: Непонятки с ответом 400

November 20, 2017 08:44AM
Ладно, с этим разберусь.
Еще толику Вашего времени... Не совсем в тему, но почти. О выборе секции server для обработки запроса.

Я слегка запутался, что от чего зависит: $host от $server_name или наоборот?
Вот как я это понимаю.

1. Сначала неправильный запрос:
echo -e 'HEAD http://www.other-domain.com/some-path HTTP/1.1\n''host:www.my-domain.com\n''user-agent:NCAT-TEST\n'| ncat www.my-domain.com 80
Как все происходит (ИМХО):
1.1. Получаем значение $host из строки запроса: $host = www.other-domain.com
На заголовок ($http_host = www.my-domain.com) в данном случае не смотрим.
1.2. Ищем секцию, соответствующую значению $host для заданного порта (80)
1.3. Такой секции не существует, запрос передается в дефолтовую, и получаем $server_name = _

----------------------------------------------------
2. Теперь правильный запрос:
echo -e 'HEAD / HTTP/1.1\n''host:www.my-domain.com\n''user-agent:NCAT-TEST\n'| ncat www.my-domain.com 80
2.1. В строке запроса хоста нет, берем из заголовка ($http_host = www.my-domain.com).
Получаем значение $host из $http_host: $host= www.my-domain.com
2.2. Ищем секцию, соответствующую значению $host для заданного порта (80)
2.3. Передаем в нее запрос и получаем $server_name = www.my-domain.com

----------------------------------------------------
3. Опять неправильный запрос с пустым $http_host:
echo -e 'HEAD / HTTP/1.1\n''host:\n''user-agent:NCAT-TEST\n'| ncat www.my-domain.com 80
3.1. Значения $host = '' и $http_host = ''
3.2. Ищем секцию, соответствующую значению $host для заданного порта (80)
3.3. Такой секции не существует, запрос передается в дефолтовую, и получаем $server_name = _
3.4. $host получает значение $server_name, т.е. $host = _
Т.е., в отличие от примера 2, не $server_name получаем из $host, а $host из $server_name

Я верно понимаю алгоритм?

>Понедельник, 20 ноября 2017, 16:24 +03:00 от Maxim Dounin <mdounin@mdounin.ru>:
>
>Hello!
>
>On Mon, Nov 20, 2017 at 03:43:16PM +0300, CoDDoC wrote:
>
>> Это я понял. Бот дернул запрос и быстро сбежал, чтобы не попасть в бан. Однако-же попал :)
>> Как мне эмулировать такую ситуацию?
>
>Я, вроде бы, вполне однозначно написал:
>
>> > Если клиент закрыл соединение, не прислав запрос полностью -
>> > то ...
>
>Так и эмулировать - закрывать соединение, не прислав запрос
>полностью.
>
>[...]
>
>--
>Maxim Dounin
>http://mdounin.ru/
>_______________________________________________
>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

Непонятки с ответом 400

CoDDoC November 20, 2017 06:58AM

Re: Непонятки с ответом 400

Maxim Dounin November 20, 2017 07:36AM

Re[2]: Непонятки с ответом 400

CoDDoC November 20, 2017 07:44AM

Re: Непонятки с ответом 400

Maxim Dounin November 20, 2017 08:26AM

Re[2]: Непонятки с ответом 400

CoDDoC November 20, 2017 08:44AM

Re: Re[2]: Непонятки с ответом 400

Slawa Olhovchenkov November 20, 2017 08:56AM

Re: Re[2]: Непонятки с ответом 400

Maxim Dounin November 20, 2017 09:32AM

Re: Непонятки с ответом 400

Maxim Dounin November 20, 2017 09:26AM

Re[2]: Непонятки с ответом 400

CoDDoC November 20, 2017 09:48AM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 234
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