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

《拆解一封网络信:HTTP 报文详解》


✉️ 第二篇:《拆解一封网络信:HTTP 报文详解》

上一篇我们知道:HTTP 是浏览器和服务器之间的一种“交流语言”。

那么,这门语言到底长什么样?浏览器到底说了什么话?服务器又是怎么回答的?

本篇,我们就要把这封“网络信”——HTTP 报文,彻底拆开看个明白。


一、HTTP 报文是什么?

在浏览器访问一个网站时,比如输入:

https://www.example.com/

你看到的网页,其实是浏览器发送了一封“请求信”(Request),服务器收到后回了一封“回信”(Response)。

这两封信就是我们常说的 HTTP 报文(HTTP Message)

所以:

  • 请求报文:客户端(浏览器)发出的信;
  • 响应报文:服务器回来的信。

二、HTTP 报文的三大组成部分

HTTP 报文结构非常规整,分为三部分:

起始行(Start Line)
请求/响应头(Headers)
消息体(Body)

我们先来看看 请求报文 长什么样👇


(1)请求报文实例

假设我们用浏览器访问百度:

GET / HTTP/1.1
Host: www.baidu.com
User-Agent: Mozilla/5.0
Accept: text/html
Accept-Language: zh-CN,zh;q=0.9
Connection: keep-alive
🔍 分析:
  • 第一行:请求行(起始行)

    • GET → 请求方法(表示要获取资源)
    • / → 资源路径
    • HTTP/1.1 → 协议版本
  • 后几行:请求头(告诉服务器一些额外信息)

  • 空一行后(这里没有 Body)→ 请求体

🌰 举个例子

就像你发快递时,快递单上写着:

收件人:服务器
快递内容:我想要这个网页
备注:我是谁,用什么浏览器看的


(2)响应报文实例

服务器收到请求后,回信如下:

HTTP/1.1 200 OK
Date: Sun, 27 Oct 2025 05:00:00 GMT
Content-Type: text/html; charset=UTF-8
Content-Length: 1256
Connection: keep-alive<!DOCTYPE html>
<html>
<head><title>百度一下</title></head>
<body>...</body>
</html>
🔍 分析:
  • 第一行:状态行

    • 协议版本:HTTP/1.1
    • 状态码:200
    • 状态描述:OK(请求成功)
  • 接下来是响应头(告诉浏览器内容类型、长度等信息)

  • 空行后是响应体(HTML 网页内容)


三、请求方法:GET、POST、PUT、DELETE……

HTTP 提供了很多“动词”来表达请求意图:

方法作用示例
GET获取资源访问网页、加载图片
POST提交数据提交表单、登录信息
PUT更新资源修改用户资料
DELETE删除资源删除帖子
HEAD获取响应头,不要内容检查资源是否存在
OPTIONS查看服务器支持哪些方法预检请求(CORS 用)

🔧 小实验:
在命令行输入:

curl -v https://www.baidu.com

可以看到浏览器“说的话”和服务器“回的话”全过程,非常直观!


四、HTTP 状态码全家桶

状态码是服务器告诉浏览器:“这事儿我干得怎么样”的数字信号。

状态码分类含义
1xx信息响应已接收,继续处理
2xx成功一切正常
3xx重定向去别的地方看看吧
4xx客户端错误你请求错了
5xx服务器错误我这边出问题了

常见状态码:

状态码含义
200 OK请求成功
301 Moved Permanently永久重定向(比如 HTTP→HTTPS)
302 Found临时重定向
404 Not Found页面不存在
500 Internal Server Error服务器挂了
503 Service Unavailable服务器暂时忙

💡 比如:当你访问了不存在的页面,服务器返回的就是:

HTTP/1.1 404 Not Found

五、HTTP 头:浏览器与服务器的“沟通信号”

HTTP 头信息其实就像一堆“附言”,告诉对方这次通信的详细情况。

📬 请求头常见字段

字段名说明
Host请求的主机名(域名)
User-Agent浏览器信息
Accept接受的内容类型
Accept-Encoding支持的压缩格式
Cookie携带登录状态

📤 响应头常见字段

字段名说明
Content-Type返回内容类型(HTML、JSON、图片等)
Content-Length内容长度
Set-Cookie设置浏览器 Cookie
Cache-Control缓存策略
Server服务器软件信息

六、HTTP Body:真正的“数据载体”

报文体(Body)部分就是实际传输的数据。
不同方法有不同内容:

  • GET 请求:通常没有 Body;
  • POST 请求:表单数据或 JSON 放在 Body 中。

🌰 例如 POST 登录请求:

POST /login HTTP/1.1
Host: example.com
Content-Type: application/json
Content-Length: 48{"username": "joon", "password": "123456"}

七、实战:用浏览器开发者工具观察 HTTP 报文

  1. 打开任意网页(如百度)

  2. 按下 F12 → 切换到 Network(网络) 面板

  3. 刷新页面

  4. 点击第一个请求(一般是主页)

  5. 你会看到:

    • Headers:请求头、响应头
    • Preview:网页内容
    • Timing:请求耗时

这就是 HTTP 报文的可视化形态。非常推荐你亲手操作一遍。


八、总结

部分含义
请求行 / 状态行说明操作意图或返回状态
头部附加信息(谁发的、要什么、返回什么)
空行分隔标志
消息体实际内容(网页、图片、数据等)

九、下一篇预告 🚀

我们了解了“HTTP 报文”的样子,但它们是怎么在网络上传输的?
点击网页的一瞬间,数据经历了什么?

👉 下一篇:《从点击到响应:HTTP 请求是如何传出去的》
我们将带你走进 TCP、IP、DNS 的世界,看看一个请求的完整旅程!

http://www.dtcms.com/a/537002.html

相关文章:

  • wordpress仿站网桌子seo关键词
  • 如何判断服务器是否遭受攻击?
  • DGX A100服务器常见故障解析与维修攻略
  • 各品牌服务器IPMI配置实战经验分享
  • 海口自助建站知乎的网站建设和网站运营
  • 营销策略ppt聊城优化seo
  • 手表网站排行榜个人网站备案申请
  • [无人机sdk] MissionManager | WaypointMission | HotpointMission
  • UGUI源码剖析(16):实战——从零构建一个RadialSlider
  • 做网站要分几部分完成南京做网站公司哪家好
  • 软件测试和DevOps的关系
  • 【vllm】源码解读:DeepSeekV2 DP Rank 专家加载与分配机制
  • YOLOv5 代码深度解析总结
  • 钓鱼网站的制作教程全球网站排行榜
  • 解决 Codex 在 WSL/SSH/VSCODE 登录时报 “Token exchange failed: 403 Forbidden” 问题
  • JS逆向——encrypt-labs实现爆破登录
  • 扬中网站建设流程如何运营好一个网站
  • 公司网站推广计划书wordpress页面新建不了
  • 防爆手机与普通的区别:应用场景、功能、未来发展
  • 阿里云可以做网站wordpress自动加载
  • IGS 转换为 3DXML 全流程:迪威模型网在线实操 + 本地方案指南
  • 【论文精读】VBench:视频生成模型的全方位评估基准套件
  • jsp网站开发模式wap自助建论坛网站
  • WEBSTORM前端 —— 第5章:Web APIs —— 第6节:正则阶段案例
  • 长春 万网 网站建设千年之恋网页设计代码
  • h5游戏免费下载:保护鸡蛋
  • node+pupeteer使用socks5作为代理协议
  • 光亚鸿道全资子公司科东软件通过2025专精特新 “小巨人” 企业认定
  • 北京做养生SPA的网站建设免费自创网站
  • 舟山网站建设有哪些网站建立分站