当前位置: 首页 > news >正文

通信协议(Http,websocket)

http协议详情

  • http是超文本传输协议,浏览器和web服务器之间交互的通信协议,它是基于Tcp之上的应用层协议(osi七层)。
  1. 特点:
  • 基于请求响应,服务端不能主动给客户端推送消息。
  • 无状态无连接,不能做会话保持。协议本身不保存客户端的会话信息,每次请求都是独立的 “一次性交互”。
  • 基于tcp之上的应用层协议--->osi七层。
  • 明文传输,数据在网络中以 “明文” 形式传输,请求和响应的内容(包括账号、密码等敏感信息)可被中间设备捕获并读取,存在严重安全风险。这一问题通过HTTPS 协议(HTTP+SSL/TLS 加密)解决。
  1. 协议版本:
  • 0.9:HTTP协议的最初版本,功能简陋,仅支持请求方式GET,并且仅能请求访问HTML格式的资源
  • 1.0:1.0版本的工作方式是每次TCP连接只能发送一个请求(默认短链接),当服务器响应后就会关闭这次连接,下一个请求需要再次建立TCP连接,就是不支持keep-alive,还有其他请求方式
  • 1.1:(正在用)引入了持久连接(persistent connection),即TCP连接默认不关闭,可以被多个请求复用,不用声明Connection: keep-alive。客户端和服务器发现对方一段时间没有活动,就可以主动关闭连接。
  • 2.0:多路复用:对于 HTTP/1.x,即使开启了长连接,请求的发送也是串行发送的,在带宽足够的情况下,对带宽的利用率不够,HTTP/2.0 采用了多路复用的方式,可以并行发送多个请求,提高对带宽的利用率
  • 3.0:HTTP3.0又称为HTTP Over QUIC,其弃用TCP协议,改为使用基于UDP协议的QUIC协议来实现
  1. 详情:
  • 请求协议:
    请求首行:请求方式(get,post,delete),请求地址,请求http协议版本号/r/n
    请求头: key:value (cookie,useragent,referer,x-forword-for)
    请求体:提交数据携带的内容,编码方式
  • 响应协议:
    响应首行:http协议版本,响应状态码(1xx,2xx),响应单词描述
    响应头:key:value (cookie,响应编码...) 跨域问题的响应头(自己设置的响应头)
    响应体:html格式:浏览器中看到的 json格式给客户端使用

GET请求和POST请求的区别

  • post更安全(携带的数据[请求参数]不会作为url的一部分,放在请求体中)
  • post发送的数据更大(get有url长度限制)
  • post能发送更多的数据类型(get只能发送ASCII字符)
  • post用于修改和写入数据,get一般用于搜索排序和筛选之类的操作

websocket协议

websocket:一种通信协议,区别于http协议,可在单个TCP连接上进行全双工通信。允许服务端主动向客户端推送数据。浏览器和服务器只需要完成一次tcp连接,两者之间就可以建立持久性的连接,并进行双向数据传输。

没有跨域问题
  • websocket协议:基于tcp的应用层协议,跟语言无关,不同语言有具体实现,实现长链接,实现双工通信;客户端浏览器发起HTTP握手,告诉服务端进行WebSocket协议通讯,并告知WebSocket协议版本;服务端确认协议版本,升级为WebSocket协议。之后如果有数据需要推送,会主动推送给客户端
  • djanog中使用channles模块实现
  • flask中使用模块 websocket模块

为什么客户端和服务端通信不全用websocket?

  • 多次请求可能间隔时间比较长
  • 可能因某种原因断开,需要重新连接

WebSocket 的真正适用场景

  • 当场景明确需要 “实时双向数据交互” 时,WebSocket 才是最优选择,例如:
  1. 实时聊天(如微信网页版、企业 IM)
  2. 实时数据展示(如股票行情、监控大屏、直播弹幕)
  3. 双向协作工具(如在线文档共同编辑、白板协作)
  4. 游戏实时交互(如多人在线小游戏的位置同步、操作反馈)
http://www.zskr.cn/news/28484.html

相关文章:

  • 轻松掌握:用 Python 的 pdfminer 将 PDF 内容保存为 Word 文档 - 详解
  • CodeForces-1183F Topforces Strikes Back
  • 2025 年最新螺旋地桩厂家推荐排行榜:聚焦光伏大棚等场景,甄选优质实力企业桩尖/大棚/组合/地螺丝螺旋地桩厂家推荐
  • 白鲸开源数据基建平台荣登“创客北京 2025”企业组TOP150,共同助 Agentic AI 行业变革
  • ORACLE检查并创建表空间和表分区
  • 禁用内核模块,是否需要执行脚本 $ sudo update-initramfs -u $ sudo update-grub ? - 详解
  • 2025 年东莞钢结构厂房施工公司最新推荐榜:聚焦企业专利技术、品质管控及知名客户合作案例的权威解析
  • 高性能AI股票预测分析报告 - 2025年10月23日
  • 2025 年电子万能试验机生产厂家最新推荐榜:聚焦企业专利技术、品质管控及知名客户合作案例的权威解析
  • Spring AI Alibaba Admin 正式开源!!
  • snack4-jsonpath v4.0.2 发布
  • 089_尚硅谷_switch的课堂练习
  • 自定义组件中监听properties里面的属性的方法里面去取另外的properties里面的属性拿不到值的问题
  • 嵌入式主板全景解析:从选型到趋势,读懂工业智能的核心载体
  • 2025 年小饭桌加盟品牌最新推荐排行榜:多元服务与深厚底蕴品牌小饭桌加盟连锁/小饭桌加盟连锁/小饭桌少儿托管加盟机构推荐
  • 2025 年托管班加盟品牌最新推荐排行榜:聚焦国内优质机构,为投资者精选靠谱加盟项目托管班机构加盟/儿童托管班中心加盟/课后托管班加盟/小学托管班加盟连锁推荐
  • vscode创建快捷代码块,同时配置vue2和vue3的快捷代码块
  • 终于能打出生僻字了!麒麟系统搜狗输入法完整安装指南 - 实践
  • docker 离线下载安装部署
  • PaperReading:《Manipulating Multimodal Agents via Cross-Modal Prompt Injection》 - 详解
  • 新手使用rocky10 过程中遇到问题:忘记root密码
  • 国标GB28181算法算力平台EasyGBS的云边协同的算力调度模式关键技术解析
  • WPF 和 Avalonia 开发者的 html css 前端指南 ScrollViewer 篇
  • 陈旧性瘢痕药物
  • 2025 年氙灯老化 / 紫外老化 / 冷热冲击 / 恒温恒湿 / 高低温 / 快速温变试验箱厂家推荐:柳沁仪器,多行业检测设备的优质供应伙伴
  • Windows Server 2025 中文版、英文版下载 (2025 年 10 月更新)
  • Windows Server 2016 中文版、英文版下载 (2025 年 10 月更新)
  • c++ 容器clear函数无法释放对象
  • mac安装stable diffusion简易部署
  • 100列表_切片_slice_步长_step_翻转_reverse