Skip to content
📌知识点小结
  • HTTP(超文本传输协议)是浏览器和服务器之间通信的规则,是 Web 世界的通用语言。
  • 一次 HTTP 通信由请求(Request)和响应(Response)两部分组成,一来一回。
  • 请求包含请求行(方法 + 路径 + 版本)、请求头、空行、请求体;响应包含状态行、响应头、响应体。
  • 常见方法:GET 取数据、POST 提交数据;常见状态码:200 成功、302 跳转、404 不存在、500 服务器错误。
  • HTTP 默认明文,HTTPS 在其基础上加了加密;看懂 HTTP 报文是抓包和安全测试的前提。
✅自测一下

0.36 HTTP 协议基础:浏览器和服务器怎么对话 ​

第〇篇【零基础预科】免费。前面讲了 IP、端口、URL,这一篇讲浏览器和服务器之间真正通信时遵循的规则——HTTP。

一、HTTP 是什么 ​

HTTP(HyperText Transfer Protocol,超文本传输协议) 是浏览器和服务器之间通信时共同遵守的一套规则。你可以把它理解成 Web 世界的【通用语言】:浏览器按 HTTP 的格式发请求,服务器按 HTTP 的格式回响应,双方都听得懂。

为什么安全学习必须懂 HTTP?因为我们分析漏洞、抓包、构造测试,打交道的对象本质上都是一个个 HTTP 报文。看不懂报文,就像医生看不懂化验单,后面的工具再强也只是盲点。

二、一次通信的结构 ​

一次 HTTP 通信是【一来一回】:

  • 请求 Request:浏览器发给服务器,说明我想干什么
  • 响应 Response:服务器返回结果

请求报文的结构分四块:

POST /login HTTP/1.1            ← 请求行:方法 + 路径 + 版本
Host: example.com               ← 请求头(若干行,键: 值)
Content-Type: application/json
                                ← 空行(分隔头部和正文)
{"user":"bob","pass":"123"}     ← 请求体(提交的数据,GET 常为空)

响应报文的结构类似:

HTTP/1.1 200 OK                 ← 状态行:版本 + 状态码 + 原因
Content-Type: application/json  ← 响应头
                                ← 空行
{"age":25,"name":"Bob"}         ← 响应体(返回的页面或数据)

记住这个【行 + 头 + 空行 + 体】的结构,所有 HTTP 报文都是这个套路。

三、请求方法 ​

方法用来说明这次请求想做什么,最常见的两个:

方法用途数据位置
GET获取资源(打开网页、查询)多在 URL 查询串里
POST提交数据(登录、上传)在请求体里

GET 的参数挂在 URL 后面(如 ?id=1),会留在历史记录和日志里,所以不适合放敏感信息;POST 的数据放在请求体中,不直接显示在地址栏。此外还有 PUT(上传/更新)、DELETE(删除)等方法,很多未授权漏洞就出在这些方法被意外开放。

四、状态码 ​

状态码是服务器用三位数字告诉浏览器这次请求的结果:

状态码含义常见场景
200成功正常返回页面/数据
302临时重定向登录成功后跳转到首页
403禁止访问没有权限
404资源不存在地址写错
500服务器内部错误后端代码/配置异常

可以按首位粗分:2xx 成功、3xx 跳转、4xx 客户端问题(请求有误)、5xx 服务端问题。测试时 500 报错尤其值得关注,详细的错误信息可能泄露后端框架、路径甚至代码逻辑。

五、HTTP 与 HTTPS ​

HTTP 默认是明文传输,数据在网络中经过的每一跳都可能被窃听或篡改。HTTPS 在 HTTP 和 TCP 之间加了一层 TLS/SSL 加密:

  • 内容被加密,中途难以窃听
  • 带有身份验证,确认连的是真服务器
  • 能防止数据被篡改

所以涉及登录、支付的网站都应使用 HTTPS。但要注意:HTTPS 加密的是传输过程,数据到达服务器后依然是明文,它解决的是传输安全,不等于应用本身没有漏洞。

六、安全视角 ​

抓包工具(如浏览器开发者工具的 Network 面板、Burp Suite)能把 HTTP 报文完整展示出来。安全测试时重点观察:

  • 请求里有哪些参数,分别传到了哪里
  • 请求头中的 Cookie、Authorization(身份凭证)
  • 响应里的状态码、报错信息、返回数据
  • 隐藏表单字段、前端写死的配置

很多漏洞的判断,都始于【修改某个参数,观察服务器响应有什么变化】。而要修改参数,前提是先能读懂原始报文。

七、本篇小结 ​

  • HTTP 是浏览器和服务器通信的规则,一次通信 = 请求 + 响应。
  • 报文结构:请求行/状态行 + 头部 + 空行 + 体。
  • GET 取数据、POST 提交数据;状态码按 2/3/4/5 分类理解。
  • HTTPS 是加密版 HTTP,解决传输安全但不消除应用漏洞。

下一篇 0.37 讲网站如何记住你是谁——Cookie 与 Session。