websocket简介及和socket对比

1.什么是websocket

是一种网络通信协议,是html5开放出来的双工通信协议(服务端和客户端随便通信,不像http协议只能客户端去请求服务端,然后服务端把信息返回)

2.websocket和socket的区别是什么

1)socket是一个工作在OSI模型会话层(第5层)的抽象层。是对TCP/IP协议族的一个封装(目的是方便程序员的使用),它是一个API(使用TCP/IP协议的接口)。socket又称为套接字,用于描述IP地址和端口,是一个通信链的句柄。

网络上的两个程序通过一个双向的通讯连接实现数据的交换,这个双向链路的一端称为一个Socket,一个Socket由一个IP地址和一个端口号唯一确定。应用程序通常通过”套接字”向网络发出请求或者应答网络请求。

2)websocket不仅是一个通信技术,还是一个应用层协议(也就是我们用的wssws协议),它基于http协议的第一次握手和服务端建立连接,成功握手后,就通过tcp通道去进行双工通信,和http协议就没有关系了。

 

使用websocket和socket都能实现双工通信。但是浏览器属于廋客户端,没办法直接和另外的客户端直接连接,所以必须通过服务器对请求进行转发才能实现和其他客户端的通信。这就有了服务器推送消息给浏览器的需求(不然就需要由浏览器一直请求才能实现消息的更新)

 

socket实现的是直接端对端通信,但是websocket却需要第三方进行转接。

3.为什么要用websocket

因为http协议太麻烦了,首先是不能双向通信,其次是header太大,影响网络通信的效率。并且在某些信息实时性要求较高的场景http协议就太垃圾了,这时就需要用到websocket协议了。

 

补充:

1.websocket通信过程:首先由客户端(浏览器)new 一个websocket对象,这个对象会向服务器发送一个http请求,服务器接收到这个请求后可以通过请求内容发现请求是一个websocket请求,然后就会进行TCP连接建立并转换通信协议,并且,会向客户端返回一个101的状态码,说明其同意协议转换啦。这时,客户端(浏览器)和服务端就可以进基于ws或wss协议进行双工通信了。

2.ws和wss协议:websocket技术使用的通信协议(对数据帧的格式规定),其中,ws协议对应的是http端点,wss对应的https端点。可以看成是通过http请求建立的连接,那么websocket就走ws协议,如果是https建立的连接,那么就走wss协议。

3.http协议和https协议的区别:区别在于是否有SSL层对请求进行加密。

4.ws其实就是websocket协议

数据帧格式如下图所示:

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值