【问题标题】:What's the status of WebSocket protocol?WebSocket 协议的现状如何?
【发布时间】:2015-02-15 07:24:27
【问题描述】:

我在RFC 6455 - Web Socket Protocol 中看到一个名为IANA Considerations 的部分。

它定义了几个要添加到 HTTP 协议的 HTTP 标头。如Sec-WebSocket-KeySec-WebSocket-Extensions

但我在RFC 2616 - HTTP 1.1 Protocol 中没有找到这些标头。

那么这些标头定义是否可以使用?

(我不太熟悉 RFC 文档的组织方式。请原谅我这是一个愚蠢的问题。)

【问题讨论】:

    标签: http websocket http-headers


    【解决方案1】:

    HTTP 协议允许将自定义标头添加到任何 HTTP 请求。如果 HTTP 服务器不知道特定的标头名称,它就会忽略它。 webSocket 连接的启动会向其 HTTP 请求添加一些自定义标头,这些标头不是标准 HTTP 定义的标头名称,但它们被格式化为标准 HTTP 标头(如 RFC 2616 的第 4.2 节中定义),因此任何 HTTP 都可以安全地忽略它们不理解它们的服务器。

    正如 Julian 在 cmets 中指出的那样,您可以看到注册 here in the IANA header registry 的 Sec-WebSocket-xxx 标头,您可能已经看到,这些标头的含义在 RFC 6455 中有更详细的描述。

    此外,section 8.3 of RFC 7231 描述了定义和注册新标头的一般过程以及它们应遵循的规则(以及有助于定义这些规则的其他规范)。

    【讨论】:

    • 非常感谢!正中目标!你是一个非常好的人。 :)
    • 澄清:(a) 与头字段定义相关的是 IANA 头字段注册表中的条目,而不是特定的 RFC; (b) RFC 2616 已于去年更新了一系列新规范; (c) RFC 是不可变的;它们永远不会改变,但它们可能会被新的 RFC# 取代。
    • @JulianReschke - 我更新了我的答案以包含您的建议。
    • @jfriend00 你能帮我解决这个问题吗?请原谅我提出如此明确的要求。再次感谢您在 WebSocket 相关问题上为我提供了很多帮助。 *.com/questions/28553580/…
    • @smwikipedia - 抱歉,但我不知道其他问题的答案。我自己没有从事与起源相关的工作。