HTTP/2 两个端点的共享设置?

HTTP/2 shared settings for both endpoints?

当连接开始时,设想以下场景:

客户端发送前言,服务器发送SETTINGS帧。它将 1 设置为 16384 并将 3 设置为 1000 (这些数字没有特殊含义,仅供说明),然后客户端发送其设置帧 1=81922=1.

现在,是否有两个单独的设置映射?那么本地和远程?

像本地=[1=16384, 3=1000] 和远程=[1=8192, 2=1] 还是他们共享一张地图进行设置?

赞设置=[1=8192,2=1,3=1000]

RFC 7540, section 6.5 表示:

SETTINGS parameters are not negotiated; they describe characteristics of the sending peer, which are used by the receiving peer. Different values for the same parameter can be advertised by each peer.

您的特定示例提到了设置键 1,它对应于 SETTINGS_HEADER_TABLE_SIZE,它具有也在 RFC 7541 中指定的特定处理。

一般来说,本地和远程对等点维护单独的设置映射,有些仅对一个对等点有意义(或语义略有不同)。

例如,服务器可能会通知客户端它不会接受超过 1024 个并发流(键 3,SETTINGS_MAX_CONCURRENT_STREAMS),但客户端不太可能将此值通知服务器典型部署