跳到主要内容

WebSocket URIs

这个规范使用在RFC5234中的 ABNF 语法以及 URI 规范中的RFC3986的术语和 ABNF 产品定义了两套方案。

ws-URI = "ws:" "//" host [ ":" port ] path [ "?" query ]
wss-URI = "wss:" "//" host [ ":" port ] path [ "?" query ]

host = <host, defined in [RFC3986](https://tools.ietf.org/html/rfc3986#section-3.2.2), 3.2.2节>
port = <port, defined in [RFC3986](https://tools.ietf.org/html/rfc3986#section-3.2.3), 3.2.3节>
path = <path-abempty, defined in [RFC3986](https://tools.ietf.org/html/rfc3986#section-3.3), 3.3节>
query = <query, defined in [RFC3986](https://tools.ietf.org/html/rfc3986#section-3.4), 3.4节>

端口字段是可选的,默认的"ws"端口是 80,而默认的"wss"端口是 443。

命中不论大小写的"wss"方案字段就表明这个 URI 可以被称为安全的(已经设置安全标记)。

"resource-name"字段(在 4.1 节也被称为/resouce name/字段)可以通过以下的数据串联起来:

  • "/",表示路径(path)字段为空
  • 路径(path)字段
  • "?",表示非空的查询参数(query)
  • 空查询参数(query)

在 WebSocket URIs 的里,身份标识片段是没有意义的,而且禁止使用在这些 URI 里面。与任何的 URI 方案一样,"#"字符不是表示片段(fragment)开始时,都必须编码为%23