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
。