【网络安全】一、入门篇:读懂 HTTP 协议
在学习网络安全前,必须先理解HTTP 协议—— 它是浏览器(客户端)与网站服务器之间的 “沟通语言”,所有 Web 请求(如打开网页、登录账号)都通过 HTTP 协议完成。本节重点讲解 HTTP 中最常用的两种请求方式:GET 和 POST。
1.1 核心概念:HTTP 请求的基本流程
简单来说,你访问一个网站的过程是这样的:
-
你在浏览器输入网址(如
http://test.com
),点击回车; -
浏览器生成一个HTTP 请求,发送给
test.com
的服务器; -
服务器处理请求后,生成HTTP 响应(包含网页内容、图片等),返回给浏览器;
-
浏览器解析响应,展示出你看到的网页。
GET 和 POST 就是两种最常见的 “请求类型”,分别对应 “获取数据” 和 “提交数据” 的场景。
1.2 GET 与 POST 的核心区别(零基础必懂)
很多初学者会混淆两者,我们用 “快递” 类比:GET 是 “上门取件”(主动要数据),POST 是 “上门寄件”(主动发数据),具体区别如下表:
对比维度 | GET 请求 | POST 请求 |
---|---|---|
核心用途 | 获取数据(如搜索、查看文章) | 提交数据(如登录、注册、上传文件) |
参数位置 | 参数拼在 URL 后面(如?id=1&name=test ) | 参数放在 “请求体” 中(URL 看不到) |
数据大小 | 受 URL 长度限制(通常不超过 2KB) | 无明确限制(可传大文件) |
安全性 | 参数暴露在 URL 中(不适合敏感数据) | 参数隐藏在请求体(相对安全,仍需加密) |
缓存性 | 会被浏览器缓存(如刷新页面不重新请求) | 不会被缓存 |
1.3 实操案例:用浏览器抓包查看 GET/POST 请求
无需安装复杂工具,用 Chrome 浏览器自带的 “开发者工具” 即可直观看到两种请求的差异(步骤适用于所有浏览器):
案例 1:查看 GET 请求(以百度搜索为例)
-
打开 Chrome 浏览器,访问百度(
www.baidu.com
); -
按
F12
键打开开发者工具,切换到「Network」标签(网络面板); -
在百度搜索框输入 “网络安全”,点击 “百度一下”;
-
在 Network 列表中,找到第一个请求(名称通常是
www.baidu.com
),点击它; -
查看「Headers」(请求头)面板:
- 找到「Request Method」,显示为
GET
(确认是 GET 请求); - 找到「Query String Parameters」(查询参数),会看到
wd=网络安全
(wd
是百度搜索的参数名,值就是你输入的内容)—— 这就是 GET 请求的参数,直接拼在 URL 里。
案例 2:查看 POST 请求(以模拟登录为例)
-
访问一个带登录功能的测试网站(如DVWA 靶场,后续会讲搭建方法);
-
按
F12
打开开发者工具,切换到「Network」标签,勾选「Preserve log」(保留日志,避免跳转后请求消失); -
输入任意账号密码(如
admin
/123456
),点击 “登录”; -
在 Network 列表中,找到名称为
login.php
(或类似)的请求,点击它; -
查看「面板」、「负载」面板:
- 「请求方法」显示为
POST
(确认是 POST 请求); - 「负载」(表单数据),会看到
username=admin&password=123456
—— 这就是 POST 请求的参数,藏在请求体中,URL 里看不到。