【譯】WebSocket協議第三章——WebSocket網址(WebSocket URIs)

黃Java發表於2018-06-14

概述

本文為WebSocket協議的第三章,本文翻譯的主要內容為WebSocket連線的相關URI地址介紹。

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

來源:https://juejin.im/post/5b226d716fb9a00e594c5da5

相關文章