从URL到网页:揭秘浏览器背后的神奇旅程,第十二章:代理模式 - 访问控制的守护大师。

DNS 解析过程

当用户在浏览器输入URL后,系统会先进行DNS解析。浏览器检查本地缓存是否存在域名对应的IP地址,若不存在则查询操作系统缓存。若仍未命中,请求会被发送至本地DNS服务器,最终通过递归或迭代查询获取目标IP。

DNS解析可能涉及多级查询,包括根域名服务器、顶级域名服务器和权威域名服务器。为提高效率,现代浏览器和操作系统均采用DNS缓存机制,减少重复查询的开销。

建立TCP连接

获取服务器IP后,客户端通过TCP三次握手与服务器建立连接。客户端发送SYN包,服务器回应SYN-ACK包,最后客户端发送ACK包确认。这个过程确保双方收发能力正常。

对于HTTPS请求,TCP连接建立后会进行TLS握手。协商加密算法、验证证书、交换密钥等步骤确保通信安全。TLS1.3版本显著减少了握手延迟。

发送HTTP请求

连接建立后,浏览器构造HTTP请求报文。请求行包含方法(GET/POST)、路径和协议版本。请求头附加Host、User-Agent、Accept等元数据。若为POST请求还会包含请求体。

现代浏览器默认启用HTTP/2协议,支持请求复用、头部压缩和服务器推送。这些优化显著减少页面加载时间,尤其对于包含多资源的网页。

服务器处理请求

服务器接收请求后,根据路由配置将请求分发给对应处理程序。静态资源直接读取文件系统,动态请求可能交由PHP、Node.js等运行时处理。处理过程中可能查询数据库或调用外部API。

服务器生成响应时设置状态码(200/404/500等)、响应头(Content-Type、Cache-Control等)和响应体。对于大规模应用,通常会通过负载均衡分散请求压力。

浏览器解析渲染

浏览器接收响应后开始解析HTML文档,构建DOM树。遇到CSS链接时并行下载并构建CSSOM树。两者结合形成渲染树,计算布局后绘制到屏幕上。

JavaScript解析会阻塞DOM构建,现代浏览器使用预解析优化。关键渲染路径优化涉及减少重排重绘、异步加载非关键资源、使用CDN加速等内容。

资源加载与交互

页面初始渲染后,浏览器继续加载图片、字体等次级资源。JavaScript可能发起AJAX请求动态更新内容。事件监听器绑定后页面进入可交互状态。

性能优化策略包括懒加载、资源预取、Service Worker缓存等。Web Vitals指标(LCP、FID、CLS)帮助量化用户体验质量。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值