跳到主要内容

7. 未来 Upgrade Token 指南

现在已有若干良好设计示例, 可以减少或消除本文档讨论的安全顾虑, 并且可能适用于未来规范:

  • 禁止 optimistic 使用 HTTP Upgrade ([WEBSOCKET] 的 Section 4.1 和 [CONNECT-IP] 的 Section 11).

  • 嵌入固定 preamble, 有意终止 HTTP/1.1 处理 ([HTTP/2] 的 Section 3.4).

  • 对客户端到服务器的数据应用高熵 masking ([WEBSOCKET] 的 Section 5.1).

未来的 upgrade token 规范应当考虑这里讨论的安全问题, 并就实现如何避免这些问题提供清晰指导.

7.1. 请求方法的选择

一些 upgrade token, 例如 "TLS", 被定义为可与任何普通 HTTP 方法一起使用. 升级后的协议继续提供 HTTP 语义, 并将传送对此 HTTP 请求的响应.

第 6 节提到的其他 upgrade token 不保留 HTTP 语义, 因此方法并不相关. 所有这些 upgrade token 都被指定为仅用于无内容的 GET 请求.

如果 HTTP 方法在其他方面无关紧要, 且请求不需要携带任何消息内容, 未来的 upgrade token 规范应将其使用限制为无内容的 GET 请求. 这可以提高与其他 upgrade token 的一致性, 并简化服务器实现.