WebSocket 是什么原理?为什么可以实现持久连接?

1.什么是WebSocket?

WebSocket是一种协议,是一种持久化协议,而HTTP是一种非持久协议(长连接,循环连接的不算)

WebSocket是HTML5出的东西(协议),也就是说HTTP协议没有变化,或者说没关系

WebSocket 是一种协议,基于 TCP 协议;HTTP 也是一种协议,基于 TCP 协议。

websocket约定了一个通信的规范,通过一个握手的机制,客户端和服务器之间能建立一个类似tcp的连接,从而方便它们之间的通信。
在websocket出现之前,web交互一般是基于http协议的短连接或者长连接。WebSocket协议本质上是一个基于TCP的协议,它由通信协议和编程API组成,WebSocket能够在浏览器和服务器之间建立双向连接,以基于事件的方式,赋予浏览器实时通信能力。既然是双向通信,就意味着服务器端和客户端可以同时发送并响应请求,而不再像HTTP的请求和响应。


连接要保持还是关闭是由你服务器应用来控制的。

首先HTTP有1.1和1.0之说,也就是所谓的keep-alive,把多个HTTP请求合并为一个,但是 Websocket其实是一个新协议,跟HTTP协议基本没有关系,只是为了兼容现有浏览器的握手规范而已,也就是说它是HTTP协议上的一种补充可以通过这样一张图理解
可以看到有交集,但是并不是全部。
另外Html5是指的一系列新的API,或者说新规范,新技术。Http协议本身只有1.0和1.1,而且跟Html本身没有直接关系。。
通俗来说,你可以用HTTP协议传输非Html数据,就是这样
再简单来说,层级不一样。

2.
 
websocket是一种全新的协议,不属于http无状态协议,协议名为"ws", 这意味着一个websocket连接地址会是这样的写法:ws://**。

 
 
 3.webSocket如何兼容低浏览器?

WebSocket是目前"唯一"的一个浏览器下的Socket的标准, 它是通过浏览器内部提供的API来实现访问的. 低版本的浏览器没有WebSocket这个标准, 就意味这些浏览器不允许用户通过它们来实现Socket通讯。

 那么怎么实现兼容低版本浏览器呢?

Adobe Flash socket、ActiveX HTML File(IE)、基于multipart编码发送XHR、基于长轮询的XHR

 
 
 
 

转载于:https://www.cnblogs.com/GumpYan/p/5712355.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值