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

发布于:2025-05-01 ⋅ 阅读:(19) ⋅ 点赞:(0)

目录

前言

🤟 找工作,来万码优才:👉 #小程序://万码优才/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、协作白板)
游戏对战、实时交易系统(股票、币圈)

网站公告

今日签到

点亮在社区的每一天
去签到