3. SETTINGS_ENABLE_CONNECT_PROTOCOL SETTINGS Parameter
本文档向 [RFC7540] 第 6.5.2 节定义的 SETTINGS parameters 添加一个新的 SETTINGS parameter.
新 parameter 名称为 SETTINGS_ENABLE_CONNECT_PROTOCOL. 该 parameter 的值 MUST 为 0 或 1.
收到值为 1 的 SETTINGS_ENABLE_CONNECT_PROTOCOL 后, client MAY 在创建新 streams 时使用本文档定义的 Extended CONNECT. server 收到此 parameter 不产生任何影响.
sender 在先前发送值为 1 之后, MUST NOT 再发送值为 0 的 SETTINGS_ENABLE_CONNECT_PROTOCOL parameter.
使用 SETTINGS parameter 来选择加入原本不兼容的 protocol change, 是 [RFC7540] 第 5.5 节定义的 "Extending HTTP/2" 的一种用法. 具体而言, 添加新的 pseudo-header field ":protocol", 以及第 4 节中 :authority pseudo-header field 含义的变化, 都需要 opt-in negotiation. 如果 client 在未先收到 SETTINGS_ENABLE_CONNECT_PROTOCOL parameter 的情况下使用本文档定义的 extended CONNECT method 规定, 不支持的 peer 会检测到 malformed request 并生成 stream error ([RFC7540] 第 8.1.2.6 节).