http协议和websocket协议的区别

简介: websocket是html5新增的全双工通讯协议,基于Tcp协议,属于应用层协议浏览器和服务器只需要一次握手就可以创建持久性的连接,并进行双向数据传输,也是解决了半双工通讯协议的弊端。简单来说就是客户端可以向服务器主动推送信息,服务器也可以主动向客户端主动推送协议。

一.websocket协议的概念

websocket是html5新增的全双工通讯协议,基于Tcp协议,属于应用层协议
浏览器和服务器只需要一次握手就可以创建持久性的连接,并进行双向数据传输,也是解决了半双工通讯协议的弊端。简单来说就是客户端可以向服务器主动推送信息,服务器也可以主动向客户端主动推送协议。


二.websocket协议的原理

websocket的原理:客户端向 WebSocket 服务器通知一个带有所有接收者ID的事件,服务器接收后立即通知所有活跃的客户端,只有ID在接收者ID序列中的客户端才会处理这个事件。


三.websocket协议的特点

1.支持双向通信,实时性更强
2.可以发送文本,也可以发送二进制数据
3.建立在Tcp协议之上,服务端的实现比较容易
4.数据格式比较轻量,性能消耗小,通讯高效
5.没有同源策略限制,客户端可以和任何服务端通信
6.协议标识符是ws,如果加密为wss。服务器的网址就是URL
7.与http协议有良好的兼容性,默认端口也是80和443,并且握手阶段还是用的http协议,因此握手时不会被屏蔽,能通过各种http代理服务器。


四.websocket的生命周期

1.Onopen(打开事件):在客户端与服务端建立连接后触发
2.onmessage(消息事件): 在服务端给客户端发来消息的时候触发
3.Onclose(关闭事件):在客户端与服务端建立关闭后触发
4.Onerror(错误事件):此事件在 WebSocket 连接或者端点发生错误时产生。


五.websocket的使用场景

弹幕
媒体聊天
协同编辑
基于位置的应用
体育实况更新
股票基金报价实时更新


六.与http最大的区别

wobsocket双向传输数据
http是单向的


相关文章
|
12月前
|
缓存 负载均衡 网络协议
HTTP 与 SOCKS5 代理协议:企业级选型指南与工程化实践
面向企业网络与数据团队的代理协议选型与治理指南,基于流量特征选择HTTP或SOCKS5协议,通过多协议网关统一出站,结合托管网络降低复杂度,实现稳定吞吐、可预测时延与合规落地。
HTTP协议中请求方式GET 与 POST 什么区别 ?
GET和POST的主要区别在于参数传递方式、安全性和应用场景。GET通过URL传递参数,长度受限且安全性较低,适合获取数据;而POST通过请求体传递参数,安全性更高,适合提交数据。
955 2
|
应用服务中间件
HTTP协议中常见的状态码
HTTP协议状态码分为1xx、2xx、3xx、4xx、5xx五类,常见状态码包括:101(请求已接受)、200(请求成功)、302(重定向)、400(请求错误)、401(未认证)、403(无权限)、404(资源不存在),以及500(服务器错误)、502(网关错误)、503(服务不可用)、504(网关超时)等。
1295 0
|
网络协议 安全 网络安全
什么是HTTP协议
HTTP协议是超文本传输协议,基于TCP,规定了客户端与服务器端通信规则,但数据以明文传输,安全性低。HTTPS则通过SSL加密保障数据安全。两者默认端口不同,HTTP为80,HTTPS为443。HTTPS安全性更高,但消耗更多服务器资源。
1310 0
|
数据采集 Web App开发 JSON
Python爬虫基本原理与HTTP协议详解:从入门到实践
本文介绍了Python爬虫的核心知识,涵盖HTTP协议基础、请求与响应流程、常用库(如requests、BeautifulSoup)、反爬应对策略及实战案例(如爬取豆瓣电影Top250),帮助读者系统掌握数据采集技能。
945 0
|
Web App开发 前端开发 Java
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html><head><meta http-equiv="Cont
ZooKeeper 保证了数据的强一致性,  zk集群中任意节点(一个zkServer)上的相同znode下的数据一定是相同的。
1021 0
|
Web App开发 监控 前端开发
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html><head><meta http-equiv="Cont
已发现2个内存错误,应用名称(kernel:),日志内容(hangzhou-jishuan-DDS0248 kernel: sbridge: HANDLING MCE MEMORY ERROR hangzhou-jis...
1121 0
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html><head><meta http-equiv="Cont
概述 HDFS中的集中化缓存管理是一个明确的缓存机制,它允许用户指定要缓存的HDFS路径。NameNode会和保存着所需快数据的所有DataNode通信,并指导他们把块数据缓存在off-heap缓存中。
949 0

热门文章

最新文章