Welcome! Log In Create A New Profile

Advanced

Re: тестирование http2 утилитой h2spec

Sergey Kandaurov
September 30, 2019 01:22PM
> On 28 Sep 2019, at 11:42, Илья Шипицин <chipitsine@gmail.com> wrote:
>
> привет!
>
> если проверять nginx-1.17.4 вот этой утилитой https://github.com/summerwind/h2spec
> то несколько десятков тестов фейлятся. можете прокомментировать ?
>
> [ilia@localhost h2spec]$ ./h2spec -p 443 -h xxx.xxx.ru -t http2
> Hypertext Transfer Protocol Version 2 (HTTP/2)
> 3. Starting HTTP/2
> 3.5. HTTP/2 Connection Preface
> ✔ 1: Sends client connection preface
> ✔ 2: Sends invalid connection preface
>
> 4. HTTP Frames
> 4.1. Frame Format
> ✔ 1: Sends a frame with unknown type
> ✔ 2: Sends a frame with undefined flag
> ✔ 3: Sends a frame with reserved field bit
>
> 4.2. Frame Size
> ✔ 1: Sends a DATA frame with 2^14 octets in length

Здесь тестируется что-то другое.

Тест не проверяет, что мы отправляем максимальный SETTINGS_MAX_FRAME_SIZE,
либо проверяет, но тогда описание не соответствует тому, что тестируется,
т.к. согласно данным объективного контроля DATA имеет длину 16777215 байт.
Далее, если тест наступит на client_max_body_size (по умолчанию 1m)
и nginx вернёт HTTP 413, не дочитав собственно тело,
тест всё равно будет признан успешным, т.к. получен HEADERS.
Поэтому вопрос, что здесь тестируется.

> × 2: Sends a large size DATA frame that exceeds the SETTINGS_MAX_FRAME_SIZE
> -> The endpoint MUST send an error code of FRAME_SIZE_ERROR.
> Expected: GOAWAY Frame (Error Code: FRAME_SIZE_ERROR)
> RST_STREAM Frame (Error Code: FRAME_SIZE_ERROR)
> Connection closed
> Actual: WINDOW_UPDATE Frame (length:4, flags:0x00, stream_id:1)

Вопреки описанию, тест закрывает соединение по собственной инициативе
через две с небольшим секунды после отправки HEADERS.

> ✔ 3: Sends a large size HEADERS frame that exceeds the SETTINGS_MAX_FRAME_SIZE

Здесь тестируется что-то другое, см. выше по SETTINGS_MAX_FRAME_SIZE.
Тест отправляет HEADERS длиной > SETTINGS_MAX_FRAME_SIZE по умолчанию
и проверяет получение GOAWAY, который приходит, но по другой причине
(и с другим кодом). А именно - в следствие достижения собственного лимита
в nginx, который настраивается директивой http2_max_header_size.

Дальше не смотрел.

--
Sergey Kandaurov

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

тестирование http2 утилитой h2spec

Илья Шипицин September 28, 2019 04:44AM

Re: тестирование http2 утилитой h2spec

Sergey Kandaurov September 30, 2019 01:22PM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

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