Daily Study
更新: 12/26/2025 字数: 0 字 时长: 0 分钟
Daily Plan
#todo
网络八股回顾
第一阶段:浏览器解析与DNS查找(本地与边缘)
当我们在浏览器输入URL并回车时:
URL解析与检查:
- 浏览器先解析URL(协议、域名、路径、端口)。
- 安全加分项:浏览器会检查该URL是否在HSTS(HTTP Strict Transport Security)列表中,如果是,强制转换为HTTPS。同时检查是否在Google Safe Browsing等恶意网址黑名单中。
DNS解析(域名 -> IP):
- 查询顺序:浏览器缓存 -> 操作系统缓存(Hosts文件) -> 路由器缓存 -> ISP DNS服务器(递归查询)。
- 递归查询流程:根域名服务器 -> 顶级域名服务器(.com) -> 权威域名服务器。
- SRE/性能加分项:如果使用了CDN,DNS会根据用户的地理位置返回最近的边缘节点IP(GSLB 全局负载均衡)。
第二阶段:建立连接
拿到IP地址后,开始建立连接:
TCP三次握手(建立可靠传输):
SYN->SYN-ACK->ACK。- 网络专业加分项:这里可以简述为什么是三次(防止已失效的连接请求传送到服务端,产生错误)。
TLS/SSL握手(安全层的核心,必讲!):
由于现在基本都是HTTPS,TCP握手后进入TLS握手(以TLS 1.2/1.3为例)。
Client Hello:客户端发送支持的加密套件、随机数。
Server Hello:服务端确认加密套件、发送证书(公钥)、随机数。
证书验证:客户端验证证书的合法性(CA签名、有效期、吊销列表CRL/OCSP)。这是中间人攻击(MITM)防护的关键。
密钥交换:利用非对称加密(如RSA或ECDHE)协商出会话密钥(Symmetric Key)。
Finished:后续通信全部使用会话密钥进行对称加密传输。
第三阶段:HTTP请求与传输
构建HTTP请求:
- 浏览器构建报文(Request Line, Headers, Body)。
- 安全加分项:携带Cookie/Token。如果是POST请求,这里可能涉及CSRF Token的校验。
网络传输(封包与路由):
- OSI模型下沉:HTTP -> TCP段 -> IP包 -> MAC帧。
- ARP协议:如果目标在局域网,通过ARP找到MAC地址;如果在外网,发给默认网关。
- 路由转发:经过无数路由器(OSPF/BGP协议),最终到达腾讯云的机房入口。
第四阶段:服务端处理(你的主场:后端与SRE)
数据包到达服务器机房后,并不是直接给到你的Go/Python程序:
接入层与防火墙:
- DDoS防护/WAF:流量先经过高防IP或WAF(Web应用防火墙),清洗恶意流量(SQL注入、XSS特征识别)。
负载均衡(Load Balancer):
- L4 LB(LVS/DPDK)做传输层转发 -> L7 LB(Nginx/Tengine)做应用层分发。
- SRE加分项:LB根据算法(轮询、加权、一致性哈希)将请求分发给健康的后端Pod/服务器。
应用服务处理(Backend):
- 请求到达你的 Go-zero / Gin 服务。
- 业务逻辑:中间件处理(鉴权、限流)-> 业务代码 -> 数据库(MySQL)/ 缓存(Redis)/ 消息队列(Kafka)。
- (这里可以带一句:就像我在校园文章平台中做的那样,查询Redis缓存,未命中则查MySQL)。
第五阶段:服务器响应与浏览器渲染
HTTP响应:
- 服务器返回状态码(200 OK, 301 Moved, 404 Not Found, 500 Error)和响应体(HTML/JSON)。
断开连接:
- TCP四次挥手(或是HTTP/1.1 Keep-Alive保持连接,HTTP/2 多路复用)。
浏览器渲染(前端视角):
解析HTML构建DOM树。
解析CSS构建CSSOM树。
执行JavaScript(可能阻塞渲染)。
Layout(布局) -> Paint(绘制) -> Composite(合成)
实际回答
在回答完上述流程后,你可以补充这样一段话,直接击中面试官的痛点:
- DNS阶段:我们可以测试CDN的覆盖率和解析延迟。
- TCP/TLS阶段:测试弱网环境下的连接稳定性,以及HTTPS证书的过期监控。
- 服务端阶段:不仅是功能测试,更要进行全链路压测(像我在项目中做的),关注QPS、TP99延迟,以及WAF对攻击流量的拦截有效性。
- 渲染阶段:关注首屏加载时间(FCP),保障用户体验。
所以我理解,这个过程不仅是数据流转的过程,更是质量保障体系(Quality Assurance)的全景图。”
