当连接开始时,请对以下场景进行成像:
客户端发送前言,服务器发送SETTINGS框架。它将1
设置为16384
并将3
设置为1000
(这些数字没有特殊含义,仅用于说明),然后客户端将其发送到设置框架设置1
= 8192
和2
= 1
。
现在,设置有两个单独的映射吗?那么本地和远程一个?
与local = [1
= 16384
,3
= 1000
]和remote = [1
= 8192
,{{1 }} = 2
]
或者他们是否共享一张地图进行设置?
类似设置= [1
= 1
,8192
= 2
,1
= 3
]
答案 0 :(得分:1)
SETTINGS参数未协商;它们描述了发送对等体的特征,它们由接收对等体使用。每个对等体可以通告相同参数的不同值。
您的特定示例提到了设置键1,它对应于SETTINGS_HEADER_TABLE_SIZE,它具有RFC 7541中指定的特定处理。
通常,本地和远程对等方为这些设置维护单独的映射,有些只对一个对等方有意义(或语义略有不同)。
例如,服务器可能会通知客户端它不会接受超过1024个并发流(密钥3,SETTINGS_MAX_CONCURRENT_STREAMS),但客户端不太可能在典型部署中通知服务器此值