В настоящее время я пытаюсь выучить nghttp2 и пытаюсь выполнить клиентский код, который указан в нижней части этой страницы:
https://nghttp2.org/documentation/tutorial-client.html
Я выполнил вышеуказанный код C, выполнивследующее:
./libevent-client URL
Мой сервер - это Windows IIS 10.0, и я хочу видеть рамку http2-settings в выводе заголовка.На данный момент он показывает следующий вывод:
Connected
Request headers:
:method: GET
:scheme: https
:authority: MY URL
:path: /
Response headers from stream ID=1:
:status: 200
content-type: text/html
last-modified: Mon, 01 Jul 2019 17:57:17 GMT
accept-ranges: bytes
etag: "c7c5406c3630d51:0"
server: Microsoft-IIS/10.0
date: Mon, 08 Jul 2019 16:02:27 GMT
content-length:51
All headers received
<html><head>Hello</head><html>
Мне нужно знать, что мне нужно в коде, чтобы увидеть, передаются ли http-настройки с запросом.Я знаю, что следующая функция выполняет отправку фреймов SETTINGS с запросом:
static void send_client_connection_header(http2_session_data *session_data) {
nghttp2_settings_entry iv[1] = {
{NGHTTP2_SETTINGS_MAX_CONCURRENT_STREAMS, 100}};
int rv;
/* client 24 bytes magic string will be sent by nghttp2 library */
rv = nghttp2_submit_settings(session_data->session, NGHTTP2_FLAG_NONE, iv,
ARRLEN(iv));
if (rv != 0) {
errx(1, "Could not submit SETTINGS: %s", nghttp2_strerror(rv));
}
}
Я также не знаю, какой тег мы используем для HTTP-настроек в протоколе http2, как и для метода, который мыесть ": метод", для схемы ": схема" и т. д. Я не смог найти его даже в RFC.