bilibili问题整理

从输入URL到页面加载完成发生了什么?

当从输入 URL 到页面加载完成时,会发生以下一系列过程:

  1. 输入 URL:用户在浏览器地址栏中输入网址 (URL)。
  2. 域名解析:浏览器对输入的 URL 进行解析,提取出域名,查本地host有无对应ip,查本地DNS服务器有无对应的缓存,否则开启DNS查询,根服务器->域服务器->域名解析服务器,并将ip存入本地DNS服务器缓存。
    [发生dns负载均衡的时间:当查询到负责该域名的权威DNS服务器时,该服务器会根据负载均衡策略(如轮询、权重等)选择一个IP地址返回给客户端]
  3. 建立连接:浏览器与目标服务器建立 TCP 连接,通常使用三次握手协议。
  4. SSL 握手(可选):如果网站使用 HTTPS,浏览器与服务器之间还需要进行 SSL 握手,以建立安全的加密连接。
  5. 发送请求:浏览器向服务器发送一个 HTTP 请求,请求中包含所需资源的详细信息,如请求方法(GET、POST 等)、URL、请求头等。
  6. 服务器处理请求:服务器接收到请求后,根据请求的内容进行相应的处理,如查询数据库、执行后端代码等。
  7. 返回响应:服务器将处理后的结果以 HTTP 响应的形式发送回浏览器。响应中包含响应状态码(如 200 表示成功),响应头以及响应体(通常是 HTML 文档)。
  8. 浏览器解析 HTML:浏览器接收到响应后,开始解析 HTML 文档,构建 DOM(文档对象模型)树。
  9. 加载资源:在解析 HTML 的过程中,浏览器可能会遇到 CSS、JavaScript、图片等外部资源的引用。此时,浏览器会发送额外的 HTTP 请求,加载这些资源。
  10. CSS 解析:浏览器将获取到的 CSS 文件解析成 CSSOM(CSS 对象模型)树。
  11. JavaScript 执行:浏览器运行 JavaScript 代码,可能会对 DOM 树和 CSSOM 树进行修改。
  12. 渲染树构建:浏览器将 DOM 树和 CSSOM 树合并成渲染树,渲染树中包含了页面上所有可见元素的样式和位置信息。
  13. 布局(重排):根据渲染树中的信息,浏览器计算每个元素在屏幕上的确切位置和大小。
  14. 绘制(重绘):浏览器根据布局结果将元素绘制到屏幕上。
  15. 页面加载完成:当所有资源都加载完毕,浏览器会触发页面的 “load” 事件,表示页面已经加载完成。 以上过程是从输入 URL 到页面加载完成的整个过程。需要注意的是,这个过程可能会因为网络延迟、服务器速度、浏览器性能等因素而有所不同。

简洁版资料:https://blog.csdn.net/ThinPikachu/article/details/113479674

https://zhuanlan.zhihu.com/p/133906695

缺少https的知识

  • 5
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值