我目前正在尝试学习 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));
}
}
我也不知道我们在 http2 协议中用于 HTTP-Settings 的标签是什么,就像我们有“:method”的方法,用于方案“:scheme”等。我什至在 RFC 中也找不到它。