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

长连接、短连接与WebSocket的基本知识

目录

  • 前言
  • 正文

前言

🤟 找工作,来万码优才:👉 #小程序://万码优才/r6rqmzDaXpYkJZF

爬虫神器,无代码爬取,就来:bright.cn

Java基本知识:

  1. java框架 零基础从入门到精通的学习路线 附开源项目面经等(超全)
  2. 【Java项目】实战CRUD的功能整理(持续更新)

初次接入webSocket,对此分析与长短连接的差异所在

正文

先通过一个表格了解基本知识:

特性短连接长连接WebSocket
连接持续请求后断开持续连接持续连接
通信方向单向(请求-响应)单向为主双向(全双工)
建立开销每次都建立只需一次一次升级后持续
实时性一般优秀
应用场景Web请求、API调用数据库连接、消息队列实时推送、IM、协作工具
传输协议TCP(HTTP)TCP(Keep-Alive) TCP(升级为 WebSocket)

具体各方面的知识如下:

  • 短连接
    指的是每次客户端与服务器通信时都重新建立一次连接,数据传输完成后立即关闭连接
    每次通信都需三次握手、四次挥手(TCP协议)
    适用于请求-响应模型,连接时间短
    常见于:HTTP 1.0、REST API 接口等

✅ 优点:

节省资源,不需要长期维持连接

实现简单,适合访问频率较低的应用

❌ 缺点:

多次连接建立开销大(尤其在频繁请求时)

无法实时通信,延迟高

  • 长连接
    指客户端和服务器建立连接后保持不关闭,可用于多次数据交互
    只需一次握手,可以多次通信
    常见于:HTTP 1.1的 Keep-Alive、数据库连接池、Socket 通信等

✅ 优点:

避免重复建立连接,提高效率

更适合频繁通信的场景

❌ 缺点:

占用资源,需要心跳机制保持连接活跃

网络中断或服务器异常需特殊处理

  • WebSocket
    是一种在单个 TCP 连接上进行全双工通信的协议,允许服务器主动向客户端推送数据。
    建立在 HTTP/HTTPS 上,升级为 WebSocket 协议(使用 Upgrade 头)
    全双工通信,实时性强
    广泛应用于聊天系统、在线游戏、实时行情等

✅ 优点:

单连接、低开销、可实时推送

全双工通信,客户端和服务端都可以主动发消息

基于标准,浏览器原生支持

❌ 缺点:

对服务器资源要求高,需保持连接状态

网络代理(如防火墙)可能影响连接建立

安全问题需注意(如 XSS、CSRF)

场景示例:

类型场景
短连接请求频率低:新闻浏览、搜索请求
一次性传输即可完成任务的系统
长连接数据库访问(如 MySQL 连接池)
长时间业务流程:支付交易、文件上传
WebSocket实时消息推送(IM、在线客服)
实时协同办公(Google Docs、协作白板)
游戏对战、实时交易系统(股票、币圈)
http://www.xdnf.cn/news/1404.html

相关文章:

  • Lua 第9部分 闭包
  • uv pip install 的本质是什么?
  • 十大物联网平台-物联网十大品牌
  • Java高级:数据库访问优化
  • 量子混合计算革命:Qiskit 3.0开启云上量子开发新时代
  • 不开启手机调试模式如何开发自动化脚本?
  • 【go】方法与函数区别,函数的内联与逃逸分析
  • Kotlin 边界限制
  • 加油站小程序实战教程14会员充值页面搭建
  • centos stream 10 修改 metric
  • python——模块、包、操作文件
  • 网络原理 - 5(TCP - 2 - 三次握手与四次挥手)
  • 深度解析n8n全自动AI视频生成与发布工作流
  • 多 Agent 系统开发指南:分布式协同、通信机制与性能优化
  • Unity ML-Agents + VScode 环境搭建 Windows
  • Manim让数学动画更有温度
  • windows怎样生成iOS证书-uniapp打包
  • RK3568平台开发系列讲解(调试篇)debugfs文件系统及常见调试节点介绍
  • 基于HPC的气候模拟GPU加速实践全流程解析
  • 【架构】Armstrong公理系统通俗详解:数据库设计的基本法则
  • 【Canvas与标志】红底肉边黑芯铁十字标志
  • socket编程基础
  • MongoDB Ubuntu 安装
  • 大数据利器:Kafka与Spark的深度探索
  • JAVA设计模式——(四)门面模式
  • 大模型驱动金融数据应用的实战探索
  • 网络安全职业技能大赛Server2003
  • 使用 Oracle 数据库进行基于 JSON 的应用程序开发
  • 线程概念与控制
  • (四)微服务架构、容器编排架构