← 返回首页

WebSocket

WebSocketHTML5HTTPAPIWebSocket

WebSocket

WebSocketiframeWebSocket2011RFC 6455

WebSocketTCPHTTP80443HTTPUpgradeHTTP

WebSocket 握手机序(详细版)

sequenceDiagram
    participant B as 浏览器
    participant S as WebSocket服务器
    Note over B,S: HTTP 升级请求
    B->>S: GET /ws HTTP/1.1
Host: example.com
Upgrade: websocket
Connection: Upgrade
Sec-WebSocket-Key: dGhlIHNhbXBsZSBub25jZQ==
Sec-WebSocket-Version: 13 S->>B: HTTP/1.1 101 Switching Protocols
Upgrade: websocket
Connection: Upgrade
Sec-WebSocket-Accept: s3pPLMBiTxaQ9kYG3hZb== Note over B,S: 握手成功,TCP 长连接建立 loop 全双工通信 B->>S: Text/Binary Frame S->>B: Text/Binary Frame end

WebSocket vs HTTP 对比

flowchart LR
    subgraph HTTP["HTTP"]
        H1["请求-响应模式"]
        H2["每次请求新建连接(1.1需keep-alive)"]
        H3["服务端无法主动推送"]
        H4["头部开销大( KB级)"]
    end
    subgraph WS["WebSocket"]
        W1["全双工长连接"]
        W2["一次握手,持续连接"]
        W3["服务端可随时推送"]
        W4["头部极小(2字节帧头)"]
    end
    style HTTP fill:#e74c3c,color:#fff
    style WS fill:#27ae60,color:#fff

WebSocketHTTP

| | HTTP | WebSocket |

| --- | --- | --- |

| | | |

| | | |

| | / | |

| | | |

| | | |

WebSocket

WebSocketHTTP

结语

WebSocket为Web应用带来了真正的实时通信能力,是现代交互式Web应用的重要技术。

想要学习更多网络协议知识,可以继续阅读我们的HTTP协议详解和TCP/IP入门教程。对于需要测试正则表达式的开发者,我们的正则表达式测试工具会很有帮助。

延伸阅读:MQTT物联网协议、HTTPS协议详解、SSH协议指南