webscoket是html5下的一种新的协议,
它实现了浏览器全双工通信,能够更好的节省服务器资源和带宽,并达到实时通信的目的。
webscoket是一个持久化的协议。
服务器长期维护长连接需要一定的成本
各个浏览器支持程度不一
websocket 是长连接,受网络限制比较大,需要处理好重连,比如用户进电梯或电信用户打个电话网断了,这时候就需要重连
解决了传统轮询(Traditional Polling)、长轮询(Long Polling)带来的问题(服务端负载、延迟等)。
它的最大特点就是,服务器可以主动向客户端推送信息,客户端也可以主动向服务器发送信息,是真正的双向平等对话,属于服务器推送技术的一种
(1)建立在 TCP 协议之上,服务器端的实现比较容易。
(2)与 HTTP 协议有着良好的兼容性。默认端口也是80和443,并且握手阶段采用 HTTP 协议,因此握手时不容易屏蔽,能通过各种 HTTP 代理服务器。
(3)数据格式比较轻量,性能开销小,通信高效。
(4)可以发送文本,也可以发送二进制数据。
(5)没有同源限制,客户端可以与任意服务器通信。
(6)协议标识符是ws(如果加密,则为wss),服务器网址就是 URL。
websocket在实时通信领域运用的比较多,比如社交聊天、弹幕、多玩家游戏、协同编辑、股票基金实时报价、体育实况更新、视频会议/聊天、基于位置的应用、在线教育、智能家居等需要高实时的场景。
1、客户端发送 http 请求,经过三次握手,建立 TCP连接,
在 http 请求里存放 websocket 支持的版本号等信息;
2、服务器接收请求,同样以 http 协议回应;
3、连接成功,客户端与服务器建立持久性的连接。
超文本传输协议,用于从 www 服务器传输超文本到本地浏览器的传输协议。http 是基于 tcp 协议的一个应用层的协议,由请求和相应构成;是一个无状态的协议。
https:https 就是加密的 http ,它通过 http 进行通信,利用 SSL/TLS 建立安全信道,加密数据包。是计算机网络进行安全通信的传输协议。
灵活可扩展:(HTTP协议就随着互联网的发展一同成长起来了。在这个过程中,HTTP协议逐渐增加了请求方法、版本号、状态码、头字段等特性。而body也不再限于文本形式的TXT或HTML,而是能够传输图片、音频视频等任意数据,这些都是源于它的“灵活可扩展”的特点)
可靠传输(因为HTTP协议是基于TCP/IP的,而TCP本身是一个“可靠”的传输协议,所以HTTP自然 也就继承了这个特性,能够在请求方和应答方之间“可靠”地传输数据。)
应用层协议(HTTP几乎可以传递一切东西,满足各种需求,称得上是一个“万能”的协议。)
无状态
1、客户端和服务端建立连接,http开始工作;2、建立连接后客户端发送请求给服务器;3、服务器收到请求后,给予相应的响应信息;4、客户端接收服务器返回的数据并在浏览器上展示,然后客户端和服务器连接断开。
webscoket是双向通信协议,模拟scoket协议,可以双向发送或接收信息。
http是单向的
websocket 是持久连接,http 是短连接;
webscoket是需要浏览器和服务器握手进行建立连接的
http是浏览器发起向服务器的连接,服务器预先并不不知道这个连接。