github rss
浅谈对 WeSocket 的理解
Dec 29, 2017
One minute read

看过一些关于 WebSocket 的文章,其中谈到最多的一句也是最关键的一句话就是:WebSocket 是服务器端向客户端主动发起请求的协议。这句话为什么很关键呢,因为它可以帮助我们了解 WebSocket 是什么。

WebSocket 是什么

WebSocket 简单来说,就是一个持久化的协议,是相对于 HTTP 这种非持久化协议来说。下面是两种协议的对比图:

WebSocket HTTP
服务器端向客户端发送请求 客户端向服务器端发送请求

既然有了 HTTP 协议,可以从客户端向服务器端发送请求了,为什么还需要 WebSocket 呢?这跟 HTTP 的生命周期有关。

HTTP 的生命周期通过 Request 来界定,也就是一个 Request 一个 Response,那么 HTTP 请求就结束了。

在 HTTP1.1 中进行了改进,使得有一个 keep-alive,也就是说,在一个 HTTP 连接中,可以发送多个 Request,接收多个 Response。但是请记住 Request = Response , 在 HTTP 中永远是这样,也就是说一个 request 只能有一个 response。而且这个 response 也是被动的,不能主动发起。

资源:

WebSocket MDN

WebSocket 是什么原理

WebSocket 教程


Back to posts