WebSocket、HTTP、Socket之间的关系

新接的游戏是c语言的,采用了websocket进行数据传输。为了防止和socket和HTTP互相混淆。记录一下

WebSocket

Websocket是一个持久性化的协议,模拟socket的一种服务器端和客户端的双向通信,需要通过HTTP1.1的握手进行连接

特点:
  1. Html5协议的一部分
  2. 服务器端可以主动向客户端进行通信
  3. 基于tcp
  4. 和Http一样都是应用层的协议
  5. 只需要连接一次,就可以达到双向通信
  6. 建立连接后采用帧传递
  7. ws/wss 统一资源符
  8. 需要借助http的三次握手进行连接
概念图:

在这里插入图片描述

为什么要引入WebSocket?

由于Http协议(Http1.1比1.0多了一个keep-alive的属性)是无状态的,所以服务器端无法记录http请求,这样要达成伪长连接的话就需要如下两种方式:

ajax轮询

通过ajax定时发送新请求,无论请求是否能获取到新的资源都会返回,在请求结束的时候都会持续wait状态一段时间,这样就会极大的增加服务器的负担。

long pool

轮询模式,是一种阻塞模式,请求后台没有新资源则阻塞,直至有新的资源或者是请求超时则返回。

以上两种方法都会极大的浪费资源,和增加负担,所以引入了WebSocket协议

HTTP协议

HTTP是一个非持久化的,且是无状态的协议

特点:
  1. 一个请求一个回应,无法主动发送信息
  2. 基于TCP/IP协议
  3. 每次连接都需要握手
  4. Http1.1可以有多个请求,多个连接
概念图

在这里插入图片描述

OSI7层

第七层:应用层(Http,Ptp,Smtp等协议)
第六层:表示层(加密,解密,转换翻译等)
第五层:会话层(管理会话,例如:SSL/TLS/RPC/Socket)
第四层:传输层(TCP协议)
第三层: 网络层(IP协议)
第二层: 数据联络层(物理寻址)
第一层: 物理层(原始比特流传输)

Socket

特点
  1. 会话层
  2. 基于Tcp/Ip抽象出来的一个中间件接口,而非协议
  3. 做用是组织数据传输

Socket和WebSocket区别

  1. Socket是接口而WebSocket是协议
  2. socket在会话层,而websocket在应用层
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值