从输入 URL 到页面展示到底发生了什么?

  1. 输入网址,解析URL,准备发送HTTP请求

  2. 检查浏览器是否有缓存,若有则直接返回,若没有则进行下一步网络请求

  3. DNS域名解析,网络请求前,进行DNS解析,获取IP地址,若请求协议是HTTPS,则需建立TLS连接,查询ip的顺序:本地浏览器缓存 -> 本地host文件 -> 路由器缓存 -> DNS服务器 -> 根DNS服器

4.建立连接,通过tcp三次握手建立连接

  1. 浏览器发送HTTP请求,构建请求头、请求行等信息,并把cookie等加入到请求头中,发送请求(若是HTTPS,则还需加解密过程)

  2. 服务器处理请求并返回HTTP资源

  3. 断开连接,通过tcp四次挥手断开连接

  4. 浏览器解析并渲染页面

  • 浏览器解析响应头。若响应头状态码为301、302,会重定向到新地址;若响应数据类型是字节流类型,一般会将请求提交给下载管理器;若是HTML类型,会进入下一部渲染流程。
  • 浏览器解析HTML文件,创建DOM树,解析CSS进行样式计算,然后将CSS和DOM合并,构建渲染树;最后布局和绘制渲染树,完成页面展示。
相关推荐
白太岁7 分钟前
Muduo:(2) EPollPoller 实现 epoll 封装、 fd 事件监听与事件通知
网络·c++·网络协议·tcp/ip
九狼23 分钟前
Flutter SSE 流式响用 Dio 实现 OpenAI 兼容接口的逐 Token 输出
http·设计模式·api
nix.gnehc1 小时前
在K8s集群中部署Traefik并验证Python HTTP服务
python·http·kubernetes
执行部之龙2 小时前
HTTP常见面试题总结
网络·网络协议·http
tod1134 小时前
Reactor反应堆模式
网络·网络协议·tcp/ip·reactor·多路转接·tcpdump
白太岁12 小时前
通信:(3) 高并发网络通信:epoll + 边沿触发 + 非阻塞 IO + tcp
c语言·网络·c++·网络协议·tcp/ip
duration~13 小时前
DHCP 协议详解
网络·网络协议·tcp/ip
猫头虎18 小时前
web开发常见问题解决方案大全:502/503 Bad Gateway/Connection reset/504 timed out/400 Bad Request/401 Unauthorized
运维·前端·nginx·http·https·gateway·openresty
天荒地老笑话么19 小时前
Bridged 与虚拟机扫描:合规边界与自测范围说明
网络·网络安全
The_Uniform_C@t21 天前
PWN | 对CTF WIKI的复现+再学习 (第九期)
网络·学习·网络安全