HTML5 SSE webscoket

SSE(server-sent-event)

允许服务端推送数据到客户端。(通常叫数据推送)

是使用的HTTP协议的

wehscoket

简历浏览器与服务器之间的通信渠道,服务器向浏览器推送消息

总的来说,webscoket更为强大和灵活,因为他是全双工通信,可以双向通信。SSE是单向通道,只能服务器向浏览器发送,因为流信息的本质上是下载,如果浏览器向服务器发送信息,就变成了一次http请求了

两者之间的区别

  • SSE使用的是http协议,而webscoket本身就是一个独立的协议
  • SSE是轻量级的,使用简单,webscoket协议相对复杂
  • SSE默认支持断线重连,webscoket需要自己实现
  • SSE一般只用于传输文件,二进制数据需要编码再传送,webscoket默认支持二进制数据传输
  • SSE支持自定义发送的消息类型

 

tcp的三次握手四次挥手

三次握手

首先是客户端发送一个请求syn,告诉服务器想要建立tcp通信

服务器收到请求,发现是请求建立tcp通信,就给客户端发送一个syn,表示可以

客户端收到服务器发回的包,发现可以建立连接,就告诉服务器我们之间可以通信即发送一个ack

至此通信建立成功

 

四次挥手

客户端发送一个fin,告诉服务器要停止传输

服务器就收到后给客户端一个ack,表明知道了(至此只是客户端单方面停止了通信)

服务器再向客户端发送一个fin,告诉客户端要停止传输

客户端收到后发送一个ack,表明知道意图

通信结束

为什么要有三次握手,四次挥手

三次握手是为了确保通信建立,确保双方的机制正常,发送特定的包,确保建立的是tcp连接,

四次挥手是为了保证通信双方都结束,就像打电话,只有双方都明确要结束,才能结束,若是一方想结束,另一方可继续讲话,所以需要四次

 

posted on 2018-03-07 11:53  bettyjones  阅读(327)  评论(0编辑  收藏  举报