一起來讀書2- websocket權威指南

1.http是無狀態的,並不適合有狀態的場景

2.websocket api
    2-1. WebSocket(url, protocol) 
        url:地址 
        protocol:協議(1.註冊協議 2.開放協議 3.自定義協議)
    2-2. open
    2-3. message
    2-4. error
    2-5. close
    2-6. send
    2-7. read

3.readyState
    3-1. CONNECTING:0 
    3-2. OPEN:1
    3-3. CLOSING:2
    3-4. CLOSED:3

4.bufferedAmount:緩衝區數據字節數

5.握手
    5-1.websocket sec:
        Sec-WebSocket-Key:只能在HTTP請求中出現一次
            (用與從客戶端到服務器的websocket初始握手,避免跨協議攻擊)
        Sec-WebSocket-Accept:只能在HTTP請求中出現一次
            (用於從客戶端到服務器的WebSocket初始握手,確認服務器理解WebSocket協議)
        Sec-WebSocket-Extensions:可能在HTTP請求中出現多次,在HTTP響應中只出現一次
            (用於從客戶端到服務期的WebScoekt初始握手,然後用於從服務器到客戶端的響應,
            這個首標幫助客戶端和服務器約定一組連接期間使用的協議級擴展)
        Sec-WebSocket-Protocol:
            (用於從客戶端到服務器的WebSocket初始握手,然後用於從服務器到客戶端的響應.
            這個首標通告客戶端應用程序可使用的協議.服務器使用相同的首標,在這些協議中的最多選擇一個)
        Sec-WebSocket-Version:
            (用於從客戶端到服務器的WebSocket初始握手,表示版本兼容性, RFC 6455的版本總是13.
            服務器如果不支持客戶端請求的協議版本,則用這個首標響應.在那種情況下,
            服務器發送的首標中列出了它支持的版本.這隻發生在RFC 6455之前的客戶端中)
    5-2.websocket http 請求:
        相比普通的的http請求多了"Upgrade: websocket"選項

6.幀
    6-1.幀頭:
        操作碼(1byte) + 長度(1byte:1bit是否屏蔽 + 7bit長度) + 擴展長度(0/2/8byte) + 
            屏蔽(4byte,僅客戶端) + 數據
    6-2.操作碼:
        類型:
            1: 文本
            2: 二進制
            8: 關閉
            9: ping
            10:pong
    6-3.utf-8是websocket文本消息中允許的唯一編碼
    6-4.websocket要求客戶端屏蔽發送的所有幀,一般用4byte做屏蔽碼

7.關閉握手
    關閉代碼:
        1000:正常關閉
        1001:離開
        1002:協議錯誤
        1003:不可接受的數據類型
        1004,1005,1006:保留
        1007:無效數據
        1008:消息違反政策
        1009:消息過大
        1010:需要擴展
        1011:意外情況
        1012:TLS失敗(不要用這個代碼)
    關閉代碼範圍解釋:
        0~999:禁止使用當前範圍的代碼
        1000~2999:保留
        3000~3999:需要註冊
        4000~4999:私有
 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章