计算机网络面试题

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

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

  1. 输入 URL:用户在浏览器地址栏中输入网址 (URL)。 生产HTTP信息

  2. 域名解析:浏览器对输入的 URL 进行解析,提取出域名,查本地host有无对应ip,查本地DNS服务器有无对应的缓存,否则开启DNS查询,根服务器->域服务器->域名解析服务器,并将ip存入本地DNS服务器缓存。
    [发生dns负载均衡的时间:当查询到负责该域名的权威DNS服务器时,该服务器会根据负载均衡策略(如轮询、权重等)选择一个IP地址返回给客户端]

  3. 建立连接:浏览器与目标服务器建立 TCP 可靠连接,通常使用三次握手协议,发送SYN信息、ACK信息,保证双方都有发送和接收的能力HTTP请求信息超过一个网络包的最大长度,进行TCP分隔数据,封装TCP信息。封装IP报文,通过IP协议对IP地址进行解析,IP地址+子网掩码->可以得到网络号+主机号。报文里加上MAC头部,包括客户端和服务端的物理地址(通过ARP 协议在以太网中以广播的形式得到服务端的MAC地址)。

  4. SSL 握手(可选):如果网站使用 HTTPS,浏览器与服务器之间还需要进行 SSL 握手,以建立安全的加密连接。

  5. 发送请求:浏览器向服务器发送一个 HTTP 请求,请求中包含所需资源的详细信息,如请求方法(GET、POST 等)、URL、请求头等。 通过网卡将网络包传输,中间经过交换机和路由器,服务端接收到网络包后再一层层的解析mac-ip-tcp-http头信息
    在这里插入图片描述

  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的知识

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值