URL地址解析至页面展示全过程(面试详细解答)

这篇具有很好参考价值的文章主要介绍了URL地址解析至页面展示全过程(面试详细解答)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

1、解析URL

2、缓存判断

​3、DNS解析

​4、获取MAC地址

5、TCP三次握手

6、HTTP请求

7、服务器处理请求,返回HTTP响应

8、页面渲染

9、TCP四次挥手

10、浏览器解析HTML

11、浏览器布局渲染


1、解析URL

首先会对 URL 进行解析,分析所需要使用的传输协议和请求的资源的路径。如果输入的 URL 中的协议或者主机名不合法,将会把地址栏中输入的内容传递给搜索引擎。如果没有问题,浏览器会检查 URL 中是否出现了非法字符,如果存在非法字符,则对非法字符进行转义后再进行下一过程。

2、缓存判断

浏览器会判断所请求的资源是否在缓存里,如果请求的资源在缓存里并且没有失效,那么就直接使用,否则向服务器发起新的请求。

URL地址解析至页面展示全过程(面试详细解答),计算机网络,URL解析
3、DNS解析

需要获取的是输入的 URL 中的域名的 IP 地址

  • 浏览器缓存

  • 操作系统缓存,hosts⽂件

  • 路由器缓存

  • ISP DNS缓存

  • DNS递归查询(可能存在负载均衡导致每次IP不⼀样)

URL地址解析至页面展示全过程(面试详细解答),计算机网络,URL解析4、获取MAC地址

当浏览器得到 IP 地址后,数据传输还需要知道目的主机 MAC 地址

判断目标地址是否与当前地址处于同一网络中,是的话直接根据 Mac 地址发送,否则使用路由表查找下一跳地址,以及使用 ARP 协议查询它的 Mac 地址。

5、TCP三次握手

URL地址解析至页面展示全过程(面试详细解答),计算机网络,URL解析

  • 客户端发送⼀个TCPSYN=1Seq=X的包到服务器端口(客户端进入 SYN-SENT 状态)

  • 服务器发回SYN=1, ACK=X+1, Seq=Y的响应包(服务器进如SYN-RECEIVED 状态)

  • 客户端发送ACK=Y+1, Seq=Z  的包到服务器端口 (客户端进入ESTABLISHED 状态) ,服务器接收到包(服务器进入ESTABLISHED 状态)

6、HTTP请求

        与服务器建立了连接后,就可以向服务器发起请求了

URL地址解析至页面展示全过程(面试详细解答),计算机网络,URL解析

7、服务器处理请求,返回HTTP响应

当页面请求发送到服务器端后,服务器端会返回一个 html 文件作为响应,浏览器接收到响应后,开始对 html 文件进行解析,开始页面的渲染过程。

8、页面渲染

        浏览器首先会根据 html 文件构建 DOM 树,根据解析到的 css 文件构建 CSSOM 树,如果遇到 script 标签,则判端是否含有 defer 或者 async 属性,要不然 script 的加载和执行会造成页面的渲染的阻塞。当 DOM 树和 CSSOM 树建立好后,根据它们来构建渲染树。渲染树构建好后,会根据渲染树来进行布局。布局完成后,最后使用浏览器的 UI 接口对页面进行绘制。这个时候整个页面就显示出来了。

9、TCP四次挥手

浏览器接收HTTP响应,然后根据情况选择关闭TCP连接或者保留重⽤

URL地址解析至页面展示全过程(面试详细解答),计算机网络,URL解析

  • 客户端打算关闭连接,此时会发送一个 TCP 首部 FIN 标志位被置为 1 的报文,也即 FIN 报文,之后客户端进入 FIN_WAIT_1 状态。
  • 服务端收到该报文后,就向客户端发送 ACK 应答报文,接着服务端进入 CLOSE_WAIT 状态。
  • 客户端收到服务端的 ACK 应答报文后,之后进入 FIN_WAIT_2 状态。
  • 等待服务端处理完数据后,也向客户端发送 FIN 报文,之后服务端进入 LAST_ACK 状态。
  • 客户端收到服务端的 FIN 报文后,回一个 ACK 应答报文,之后进入 TIME_WAIT 状态
  • 服务端收到了 ACK 应答报文后,就进入了 CLOSE 状态,至此服务端已经完成连接的关闭。
  • 客户端在经过 2MSL 一段时间后,自动进入 CLOSE 状态,至此客户端也完成连接的关闭。
10、浏览器解析HTML

浏览器通过解析HTML,生成DOM树,解析CSS,生成CSS规则树,然后通过DOM树和CSS规则树生成渲染树。渲染树与DOM树不同,渲染树中并没有head、display为none等不必显示的节点。

解析执行JS脚本

11、浏览器布局渲染

        完成解析文章来源地址https://www.toymoban.com/news/detail-858121.html

到了这里,关于URL地址解析至页面展示全过程(面试详细解答)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • tplink路由器设置静态IP地址上网全过程(图文)

    静态IP配置一般的用户都很少使用到了,但有些用户可能会用到静态IP地址网了,下面我来给各位同学介绍tplink路由器怎么设置静态IP地址上网吧。 如果您的上网方式是静态IP,也就是说您向网络服务商(电信或网通)申请的宽带是固定IP地址,并且网络服务商提供您所有的外网的

    2024年02月06日
    浏览(96)
  • onnx模型转engine并进行推理全过程解析

    深度学习模型在训练好以后,下一步就是部署到不同的设备进行测试,不同设备之间的转换一般可以通过中间件ONNX进行转换,以达到不同平台的通用。本文以模型转为ONNX为起点,分析介绍ONNX转为TensorRT Engine并进行推理的整个流程链路。 ONNX序列化为TRT模型的整个流程可以用

    2024年02月06日
    浏览(42)
  • 网络安全竞赛——综合靶机渗透测试ZHCS-2全过程解析教程

    任务一:综合靶机渗透测试 任务环境说明: 服务器场景:ZHCS-2(关闭连接) 服务器场景操作系统:版本不详 扫描目标靶机将靶机开放的所有端口,当作flag提交(例:21,22,23)   FLAG:22,80 扫描目标靶机将靶机的http服务版本信息当作flag提交(例:apache 2.3.4)   FLAG: lighttpd 1.

    2024年02月09日
    浏览(43)
  • 薪资18K需要什么水平?来看看98年测试工程师的面试全过程…

    大概介绍一下个人情况,男,本科,三年多测试工作经验,懂python,会写脚本,会selenium,会性能,然而到今天都没有收到一份offer!从年后就开始准备简历,年后上班的第一天就开始投,开始只是投了一些官网已久的岗位,并没有收到面试邀请,得到的都是不匹配的反馈,一

    2023年04月19日
    浏览(54)
  • 位置环速度环串级位置式PID实现全过程解析(详细)

    电机型号:MD36N行星减速电机_AB两相光电编码器霍尔编码器 电机参数: 单片机型号:STM32F429IG,keil 程序最终功能:串级位置式PID反复调节电机,使得电机可以在一定范围内精准任意停靠在某个位置,比如电机控制目标在圆形轨道转动,就可以实现在固定角度的位置停靠,四

    2023年04月08日
    浏览(41)
  • 薪资17K是一个怎样的水平?来看看98年测试工程师的面试全过程…

    大概介绍一下个人情况,男,本科,三年多测试工作经验,懂python,会写脚本,会selenium,会性能,然而到今天都没有收到一份offer!从年后就开始准备简历,年后上班的第一天就开始投,开始只是投了一些官网已久的岗位,并没有收到面试邀请,得到的都是不匹配的反馈,一

    2023年04月23日
    浏览(54)
  • ElasticSearch-安装部署全过程

    本文已收录于专栏 《中间件合集》   是一个开源的分布式搜索和分析引擎,它建立在 Apache Lucene 搜索引擎库之上。它提供了一个分布式、多租户的全文搜索引擎,具有强大的实时搜索和分析能力。Elasticsearch 是用 Java 语言编写的,并且提供了 RESTful API,使其易于集成和使用

    2024年02月12日
    浏览(43)
  • OpenCV相机标定全过程

    一、OpenCV标定的几个常用函数 findChessboardCorners() 棋盘格角点检测 第一个参数是输入的棋盘格图像(可以是8位单通道或三通道图像); 第二个参数是棋盘格内部的角点的行列数(注意:不是棋盘格的行列数,如棋盘格的行列数分别为4、8,而内部角点的行列数分别是3、7,因

    2024年02月04日
    浏览(48)
  • HTTPS】HTTPS过程详解,tcpdump抓包 全过程分析

    RFC中的HTTPS交互过程如下: 客户端支持的TLS最高版本号 客户端生成的随机数 客户端支持的加密套件 主机名server_name cipher suite怎么理解 名字为 ECDH-ECDSA-AES128-SHA256 的CipherSuite 使用 ECDH做密钥交换, 使用ECDSA做认证, 使用AES-128做加密算法, 使用SHA256做MAC算法。 客户端能支持的

    2024年02月11日
    浏览(39)
  • Tomcat处理请求的全过程

    在Tomcat处理客户端请求的过程中,这里面有三个组件概念,他们都是线程,分别负责不同的职责。 (必须记清楚这三个线程组件) Acceptor 一个普通线程任务,用于接收新连接,并将新连接封装,选择一个 Poller 将新连接添加到 Poller 的事件队列中。 Poller 一个线程任务,用于

    2024年01月20日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包