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

【计算机网络】一文看懂 HTTP协议(上)

一、 什么是 HTTP?

如果说 IP 是地址,TCP 是快递员,那么HTTP 就是你要寄的那封信的内容格式

它的官方定义是:一个基于请求与响应无状态的、应用层的协议。

  • 请求与响应:你(客户端)发一个 Request,我(服务端)回一个 Response。没人点菜,厨师是不会主动上菜的。

  • 无状态:HTTP 像个“健忘症”,它不记得你上次发了什么。为了让它“拥有记忆”,才引入了 Cookie、Session 或你在项目中常用的JWT


二、 HTTP 状态码:后端排查的“信号灯”

状态码是后端开发最直观的排错依据。我们不需要记住所有的状态码,但是对于常见的状态码我们也要了然于心。

状态码类别核心含义面试 / 实战必考点
1011xx 信息切换协议常用于WebSocket握手升级,将 HTTP 转为全双工长连接。
2062xx 成功部分内容断点续传或分片下载的标志。服务端处理了带有Range头的请求。
301/3023xx 重定向永久/临时重定向301请求资源已不在;302 常用于未登录拦截跳转。
3043xx 重定向未修改协商缓存命中的标志。服务端告知直接用本地缓存,不传实体,省带宽。
401/4034xx 客户端错未认证/未授权401 是“你是谁?(没 Token)”;403 是“没权限(你是普通用户想进后台)”。
502/5045xx 服务端错网关错误/超时502 通常是后端服务挂了;504 是处理太慢(慢 SQL、死锁)导致网关等不及了。

三、 HTTP 的优缺点

优点:

  • 简单灵活:纯文本格式,解析方便,且能传输图片、JSON、视频等多种格式。

  • 性能:在现代协议优化下,性能开销已非常小。

缺点(与 HTTPS 的核心区别):

  • 被窃听:明文传输,信息像在裸奔。

  • 被篡改:中间人可以随意改动你的包裹。

  • 被冒充:无法确认发件人真的是你想要联系的那个人。

  • 队头阻塞:在 1.1 版本中,管道化请求必须按顺序返回,前面的卡住后面全等死。


四、 HTTP每个版本的区别”

这是面试最能体现水平的部分,咱们看 HTTP 如何脱胎换骨:

1. HTTP/1.1:建立标准与长连接
  • Keep-Alive:默认开启长连接,多个请求复用同一个 TCP 通道,不用每次都握手。

  • 问题:存在 HTTP 层的队头阻塞

2. HTTP/2.0:性能质变与二进制化
  • 二进制分帧:解析速度极快。

  • 多路复用:真正解决了 HTTP 层的阻塞。一个连接里可以同时发多个请求,乱序返回再根据 ID 组装。

  • 头部压缩 (HPACK):压缩重复的 Header,节省大量带宽。

  • 服务器推送:服务端可以主动把 CSS/JS 塞给客户端,不用等对方请求。

3. HTTP/3.0:更换基石(UDP/QUIC)
  • 核心逻辑:由于 TCP 丢包会导致整个连接阻塞(TCP 层队头阻塞),3.0 直接放弃 TCP,改用基于UDPQUIC协议。

  • 0-RTT 握手:连接握手和 TLS 握手合并,重连时几乎 0 耗时。

  • 连接迁移:基于 Connection ID。你从 Wi-Fi 换到 5G,连接也不会断开。

特性HTTP/1.1HTTP/2HTTP/3
传输层协议TCPTCPUDP (QUIC)
数据格式文本二进制分帧二进制分帧
多路复用解决 HTTP 阻塞解决 TCP 阻塞
首部压缩有 (HPACK)有 (QPACK)
握手延迟1-2 RTT1-2 RTT0-1 RTT

http://www.jsqmd.com/news/437486/

相关文章:

  • Qt实战:如何用QCustomPlot实现平滑曲线绘制(附完整代码)
  • 腾讯混元轻量版体验:HY-1.8B-2Bit-GGUF镜像部署与中文创作实测
  • Qwen3-TTS-1.7B-Base从零开始:4.3GB主模型+651MB Tokenizer本地部署全流程
  • 微信公众号第三方开发实战:回调URL中高效获取授权方信息与Token管理
  • MSTP+VRRP组网下无线AP离线之谜:当STP配置遇上AC控制器心跳检测
  • 前端RSA解密实战:如何改造jsencrypt实现公钥解密(附完整代码)
  • RIP协议深度对比:在Packet Tracer里玩转v1和v2的7个关键差异
  • 手把手教你用LiuJuan20260223Zimage:零基础生成汉服人像,效果惊艳
  • Eigen库避坑指南:为什么你的矩阵计算比NumPy还慢?
  • ArcGIS小白必看:3分钟搞定地图经纬网添加(附江苏省实例)
  • Lyapunov优化在5G网络资源调度中的实践与挑战
  • 3步精通MTKClient:联发科设备刷机与逆向工具完全配置指南
  • FPGA调试实战:巧用Vivado ILA IP核进行片上信号深度捕获与分析
  • EcomGPT电商智能助手入门必看:如何将EcomGPT输出接入Shopify后台批量更新
  • FRCRN开发调试技巧:常见音频格式问题与解决方法
  • 联想游戏本终极优化指南:用Lenovo Legion Toolkit实现全场景性能掌控
  • 解锁7大免费工具:突破内容访问限制完全指南
  • 从零开始用Python搞AI?先看完这份Go/C++/Java的跨界能力测评
  • MaxKB企业落地指南:3个真实客户服务场景的RAG优化技巧
  • HDFS性能优化:10个提升存储效率的关键技巧
  • 5个专业技巧:猫抓插件资源嗅探从入门到精通
  • OpenClaw本地部署新实践:nanobot支持Prometheus指标暴露,对接Grafana监控
  • 从零到精通:SAP EHP5.0中STO功能在项目库存转移中的实战应用
  • 北京大宅装修机构五强评测:2026年谁更值得托付? - 2026年企业推荐榜
  • 卷积神经网络(CNN)原理浅析:及其在万象熔炉·丹青幻境图像生成中的作用
  • WPS插件开发实战:用JavaScript实现文档自动化处理(附完整Demo)
  • 从零理解UVM寄存器模型:lock_model与地址映射的那些事儿
  • TSMaster TIO9000模块从入门到精通:Windows环境下的板卡配置全流程指南
  • HC32F460开发避坑指南:SWD引脚复用导致USART通信失败的解决方案
  • 阿里SenseVoice vs FunASR:如何选择适合你的语音识别工具?