一图阐明websocket和http协议的关系
http协议缺点:通信只能由客户端发起,服务器不会主动向客户端推送信息。
websocket:服务器可以主动向客户端推送信息,客户端也可以主动向服务器发送信息,是双向通信。
(接下来参考知乎,主要是为了自己记忆)
相比http协议,websocket是一个持久化的协议,用PHP生命周期解释:
HTTP的生命周期通过Request来界定,即一个Request一个Response,在HTTP1.0中,这次HTTP请求就结束了。在HTTP1.1中进行了改进,有了一个keep-alive,即在一个HTTP连接中,可以发送多个Request,接收多个Response。但Request=Response,一个Request只能有一个Response。而且这个Response是被动的,不能主动发起。
websocket是基于HTTP协议的,或者说借用了HTTP的协议来完成一部分握手。只要经过一次HTTP请求,就可以做到源源不断的信息传送(在程序设计中,这种设计叫回调,即,你有信息了再来通知我,而不是我每次跑去问你有没有信息)
参考:https://www.imooc.com/article/34136