> On 28 Sep 2019, at 11:42, Илья Шипицин <chipits...@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