【发布时间】:2012-01-04 15:02:22
【问题描述】:
我只是对网络技术不是很熟悉。
我想知道 SSE 和 WebSocket 什么时候都通过 HTTP 进行通信,在 HTTP 连接之前是否还有著名的 TCP 3 次握手?
如果是,WebSocket 会有两次 3 次握手?一个通过 TCP,第二个用于通过 HTTP 的升级方法?
提前致谢!
【问题讨论】:
标签: tcp websocket handshake server-sent-events
我只是对网络技术不是很熟悉。
我想知道 SSE 和 WebSocket 什么时候都通过 HTTP 进行通信,在 HTTP 连接之前是否还有著名的 TCP 3 次握手?
如果是,WebSocket 会有两次 3 次握手?一个通过 TCP,第二个用于通过 HTTP 的升级方法?
提前致谢!
【问题讨论】:
标签: tcp websocket handshake server-sent-events
没错。
HTTP 建立在 TCP 之上。这意味着 HTTP 数据包在 TCP 数据包内。而且每个 HTTP 连接都需要先经过一次 TCP 握手。
Server-Sent-Events 基本上只是一个长时间运行的 HTTP 请求,它在需要时将数据从服务器发送到客户端。它使用标准 HTTP 标头来提供附加信息。
WebSockets 是一种全新的协议,它使用 HTTP 来发起连接。连接升级到新协议。 WebSocket 握手的主要目的是确保双方都在使用相同的协议,并希望在该协议级别上相互通信。
【讨论】: