0.19 一次网页请求的完整旅程
第〇篇「零基础预科」免费。这一篇把前几篇串起来,看清"按下回车到页面出现"之间到底发生了什么。
一、完整链路总览
二、逐步说明
- DNS 解析:把 gysec.top 变成 IP(0.17);
- 建立连接:浏览器和服务器在 443 端口建立 TCP 连接(0.16);
- TLS 握手:HTTPS 下双方验证证书、协商加密密钥,之后通信加密;
- 发送请求:浏览器发出 HTTP 请求,包含请求方法、路径、请求头(Cookie、UA 等);
- 服务器处理并响应:Web 服务器/后端处理,返回状态码和内容;
- 加载子资源:解析 HTML 时发现 CSS、JS、图片、字体、接口,再分别请求;
- 渲染:浏览器把 DOM、样式、脚本组合,最终画出页面。
三、HTTP 状态码速查
| 码 | 含义 | 常见场景 |
|---|---|---|
| 200 | OK 成功 | 正常返回页面 |
| 301/302 | 重定向 | HTTP 跳 HTTPS、旧地址跳新地址 |
| 400 | 请求错误 | 参数格式不对 |
| 401 | 未认证 | 需要登录 |
| 403 | 禁止 | 已登录但无权 / 被拦截 |
| 404 | 未找到 | 地址错误/页面不存在 |
| 500 | 服务器错误 | 后端异常 |
| 502/503/504 | 网关/服务问题 | 上游挂了/超时 |
你之前遇到的"手动输 /login 正常、点击却 404",就是前端路由和服务端路由的差异;而"登录后回原页"则是 302 重定向 + 隐藏跳转参数的配合。
四、请求和响应长什么样
请求(简化):
http
GET /wiki/deser-lazymap HTTP/1.1
Host: gysec.top
Cookie: gysec_auth=xxxx
User-Agent: Mozilla/5.0 ...响应(简化):
http
HTTP/1.1 200 OK
Content-Type: text/html; charset=utf-8
<!DOCTYPE html> ...请求方法常见:GET(取数据/页面)、POST(提交数据,如登录表单)、PUT/DELETE 等。
五、怎么观察这条链路
- 浏览器按
F12打开开发者工具 → Network(网络) 面板,刷新页面,能看到每一个请求、状态码、请求头、响应; - 命令行可用
curl -I https://gysec.top只看响应头和状态码; - 抓包工具(Wireshark/Burp)能看到更底层或可修改的请求。
六、本篇小结
- 旅程:DNS→TCP→TLS→HTTP 请求→响应→加载子资源→渲染。
- 状态码:200 成功、301/302 跳转、401 未登录、403 禁止、404 没有、500 出错。
- 一个页面背后是很多次请求;用 F12 Network 观察。
- 能把问题定位到"哪一步",是排查和安全测试的关键能力。
下一篇 0.20 讲请求两端的角色:客户端与服务器。