news 2026/6/15 19:35:25

有了TCP为什么还需要HTTP?再用RPC?这次彻底讲明白了

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
有了TCP为什么还需要HTTP?再用RPC?这次彻底讲明白了

有了TCP为什么还需要HTTP?再用RPC?这次彻底讲明白了!

网络协议栈就像盖房子:TCP 是地基(传输层),提供可靠的数据传输;HTTP 是标准户型(应用层),定义了浏览器和服务器怎么“对话”;RPC(远程过程调用)则是定制别墅,专为服务间高效通信设计。很多人纠结“TCP 已经可靠了,为什么层层叠加?”其实这是分层设计的精髓:每层解决特定问题,避免一层包打天下。

1. TCP 是什么?为什么不够用?

TCP(Transmission Control Protocol)是传输层协议,基于 IP(网络层),主要负责:

  • 可靠传输:三次握手建立连接、序号确认、超时重传、流量控制、拥塞控制。
  • 字节流:数据像水流一样有序、无边界发送(无消息概念)。

但 TCP 只是“快递服务”:它保证包裹(数据)可靠送到,但不关心包裹里是什么、怎么拆。直接用 TCP 写应用,你得自己定义:

  • 请求/响应格式
  • 方法名、参数编码
  • 错误处理、认证等

太原始了!就像寄信只写地址,不写信的内容格式——收信人看不懂。

2. 为什么需要 HTTP?(应用层标准协议)

HTTP(HyperText Transfer Protocol)构建在 TCP 之上,专为Web设计:

  • 请求-响应模型:客户端发 Request(方法+路径+头+体),服务器回 Response(状态码+头+体)。
  • 无状态:每个请求独立(HTTP/1.1 支持 Keep-Alive 复用连接)。
  • 文本格式:易读、易调试(头如 Content-Type、Cookie、Cache-Control)。
  • 标准丰富:GET/POST/PUT/DELETE、缓存、重定向、认证、HTTPS 等。

HTTP 让全球浏览器和服务器统一“语言”:你访问网站,不用管后端是什么语言,都能正常显示页面、提交表单。

没有 HTTP,直接用 TCP 访问网页?不可能——你得自己解析 HTML、处理 Cookie、缓存……浏览器会崩溃。

3. HTTP 够用了,为什么还要 RPC?

HTTP 完美适合浏览器-服务器(B/S)场景,但微服务时代,服务间调用(内部通信)有新需求:

  • 性能要求高:HTTP 文本头大、解析慢(JSON/XML)。
  • 类型安全:想直接调用函数,像本地一样(带参数类型、返回对象)。
  • 双向流:需要实时推送(如聊天、流式响应)。
  • 内部高效:不需要浏览器兼容、无状态开销。

RPC(Remote Procedure Call)就是为此而生:让远程调用像本地函数调用一样简单。

  • 常见 RPC:gRPC(Google,开源王者)、Dubbo(阿里)、Thrift(Facebook)。
  • 核心优势
    • 二进制协议(Protobuf):体积小、解析快(比 JSON 快 5-10 倍)。
    • 支持流式(Streaming):单向/双向/服务器流。
    • 代码生成:.proto 文件自动生成客户端/服务端 stub。
    • 基于 HTTP/2:多路复用、头压缩(解决 HTTP/1.1 队头阻塞)。
对比表格:一目了然
维度TCPHTTP (REST/JSON)RPC (gRPC/Dubbo)适用场景
层级传输层应用层应用层-
数据格式字节流文本(头+JSON/XML)二进制(Protobuf)RPC 体积小、快
性能可靠传输基础中等(头大、解析慢)高(HTTP/2 + 二进制)微服务内部首选 RPC
易用性原始,需要自定协议易调试、浏览器友好代码生成、类型安全HTTP 适合对外 API
流式支持有限(Chunked)强大(双向流)实时场景用 RPC
标准性底层标准Web 通用标准框架特定(但 gRPC 流行)HTTP 跨语言/平台最广
总结:为什么层层叠加?
  • TCP:解决可靠传输(底层必须)。
  • HTTP:解决 Web 资源访问标准化(浏览器时代王者)。
  • RPC:解决微服务高效内部调用(云原生时代王者)。

现代系统往往混合用:对外 API 用 HTTP/REST(易集成、文档 Swagger),内部微服务用 gRPC(高性能)。这次彻底明白了吧?TCP 是“路”,HTTP 是“交通规则”,RPC 是“高铁”——各司其职,缺一不可😂

有疑问欢迎追问,比如 gRPC 具体怎么用?下一个话题:REST vs GraphQL?

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/15 13:27:39

德诺超声波(DELOK)在医疗产品焊接中的高效应用案例分析

在医疗产品的焊接过程中,德诺超声波(DELOK)技术通过提高效率和质量控制发挥了重要作用。该技术利用超声波能量,使材料在短时间内实现焊接,确保质量稳定。这种方法特别适用于药品包装和医疗器械的封装,促进了…

作者头像 李华
网站建设 2026/6/15 13:40:26

移动端兼容性测试的技术纵深与实践突破

1 专项测试的技术演进脉络 随着移动应用生态的复杂化,专项测试已从早期的功能验证延伸至性能、安全、兼容性等多维评估体系。移动端兼容性测试作为其中关键环节,需要应对设备碎片化、系统版本差异化、网络环境动态化三大核心挑战。据统计,目…

作者头像 李华
网站建设 2026/6/15 14:27:30

NetSonar终极指南:如何快速诊断网络问题

NetSonar终极指南:如何快速诊断网络问题 【免费下载链接】NetSonar Network pings and other utilities 项目地址: https://gitcode.com/gh_mirrors/ne/NetSonar NetSonar是一款功能强大的跨平台网络诊断工具,能够帮助用户快速定位网络故障、实时…

作者头像 李华
网站建设 2026/6/15 4:02:31

Z变换:离散控制系统的核心数学工具

这是一个非常核心的信号与控制系统问题。我将系统地解释Z变换的原理、本质和作用,力求清晰深入。一、原理:从连续到离散的桥梁要理解Z变换,首先要明白它解决的问题背景。控制系统的数字化:现代控制系统(如机器人、数控…

作者头像 李华
网站建设 2026/6/15 13:40:21

魔鬼魔王通达信主图 源码 有买卖提示

{}N1:7; LC:REF(CLOSE,1); X:SMA(MAX(CLOSE-LC,0),N1,1)/SMA(ABS(CLOSE-LC),N1,1)*100,COLORYELLOW,LINETHICK1; 魔鬼:DRAWLINE(X>HHV(X,N1),X,X<LLV(X,N1),X,1),COLOR00FF00; 魔王:DRAWLINE(X>HHV(X,N1),X,X<LLV(X,N1),1,X),COLOR00FF00; TJ0:X魔王; TJ1:X魔鬼; T…

作者头像 李华
网站建设 2026/6/14 4:11:19

庄散资金流 增加震仓副图、源码、贴图

{}JJ:(HIGHLOWCLOSE)/3; QJ0:AMOUNT/IF(HIGHLOW,4,HIGH-LOW); 主买:ABS(QJ0*(JJ-MIN(CLOSE,OPEN))),COLORRED,LINETHICK0; 主卖:(QJ0*(MIN(OPEN,CLOSE)-LOW)),COLORLIBLUE,LINETHICK0; 散买:(QJ0*(HIGH-MAX(OPEN,CLOSE))),LINETHICK0; 散卖:ABS(QJ0*(MAX(CLOSE,OPEN)-JJ)),COLO…

作者头像 李华