我只是对网络技术不是很熟悉。
我想知道当SSE和WebSocket都通过HTTP通信时,在HTTP连接之前是否也有著名的TCP 3次握手?
如果是,WebSocket 会有两次 3 次握手?一个通过 TCP,第二个用于通过 HTTP 的升级方法?
提前致谢!
最佳答案
没错。
HTTP 建立在 TCP 之上。这意味着 HTTP 数据包在 TCP 数据包中。并且每个 HTTP 连接都需要先经过 TCP 握手。
Server-Sent-Events 基本上只是一个长时间运行的 HTTP 请求,它在需要时从服务器向客户端发送数据。它使用标准 HTTP header 来提供附加信息。
WebSockets 是一种全新的协议(protocol),它使用 HTTP 来发起连接。连接升级到新协议(protocol)。 WebSocket 握手的主要目的是确保双方使用相同的协议(protocol)并希望在该协议(protocol)的级别上相互交谈。
关于TCP 握手 : Server-Sent Events and WebSocket?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8728961/