从输入URL到页面展示过程

详细的聊一聊从输入一个url到页面展示都包含那些过程---知识点包含强缓存、协商缓存、缓存位置、DNS解析、F5强制刷新都做了什么、TCP三次连接、四次挥手过程、解析浏览器解析html的整个过程 详细的聊一聊从输入一个url到页面展示都包含那些过程---知识点包含强缓存、协商缓存、缓存位置、DNS解析、F5强制刷新都做了什么、TCP三次连接、四次挥手过程 阅读详情


1. DNS域名解析

  • 根 DNS 服务器 :返回顶级域 DNS 服务器的 IP 地址
  • 顶级域 DNS 服务器:返回权威 DNS 服务器的 IP 地址
  • 权威 DNS 服务器 :返回相应主机的 IP 地址

DNS的域名查找,在客户端和浏览器,本地DNS之间的查询方式是递归查询;在本地DNS服务器与根域及其子域之间的查询方式是迭代查询;

在客户端输入 URL 后,会有一个递归查找的过程,从浏览器缓存中查找->本地的hosts文件查找->找本地DNS解析器缓存查找->本地DNS服务器查找,这个过程中任何一步找到了都会结束查找流程。

如果本地DNS服务器无法查询到,则根据本地DNS服务器设置的转发器进行查询。若未用转发模式,则迭代查找过程如下图:

结合起来的过程,可以用一个图表示:

在查找过程中,有以下优化点:

  • DNS存在着多级缓存,从离浏览器的距离排序的话,有以下几种: 浏览器缓存,系统缓存,路由器缓存,IPS服务器缓存,根域名服务器缓存,顶级域名服务器缓存,主域名服务器缓存。
  • 在域名和 IP 的映射过程中,给了应用基于域名做负载均衡的机会,可以是简单的负载均衡,也可以根据地址和运营商做全局的负载均衡。

2. 建立TCP连接

首先,判断是不是https的,如果是,则HTTPS其实是HTTP + SSL / TLS 两部分组成,也就是在HTTP上又加了一层处理加密信息的模块。服务端和客户端的信息传输都会通过TLS进行加密,所以传输的数据都是加密后的数据

进行三次握手,建立TCP连接。

  • 第一次握手:建立连接。客户端发送连接请求报文段
  • 第二次握手:服务器收到SYN报文段。服务器收到客户端的SYN报文段,需要对这个SYN报文段进行确认
  • 第三次握手:客户端收到服务器的SYN+ACK报文段,向服务器发送ACK报文段

SSL握手过程

  • 第一阶段 建立安全能力 包括协议版本 会话Id 密码构件 压缩方法和初始随机数
  • 第二阶段 服务器发送证书 密钥交换数据和证书请求,最后发送请求-相应阶段的结束信号
  • 第三阶段 如果有证书请求客户端发送此证书 之后客户端发送密钥交换数据 也可以发送证书验证消息
  • 第四阶段 变更密码构件和结束握手协议

完成了之后,客户端和服务器端就可以开始传送数据

发送HTTP请求,服务器处理请求,返回响应结果

TCP连接建立后,浏览器就可以利用 HTTP/HTTPS 协议向服务器发送请求了。服务器接受到请求,就解析请求头,如果头部有缓存相关信息如if-none-match与if-modified-since,则验证缓存是否有效,若有效则返回状态码为304,若无效则重新返回资源,状态码为200

这里有发生的一个过程是HTTP缓存,是一个常考的考点,大致过程如图:

3. 关闭TCP连接

4. 浏览器渲染

按照渲染的时间顺序,流水线可分为如下几个子阶段:构建 DOM 树、样式计算、布局阶段、分层、栅格化和显示。如图:

  • 渲染进程将 HTML 内容转换为能够读懂DOM 树结构。
  • 渲染引擎将 CSS 样式表转化为浏览器可以理解的 styleSheets,计算出 DOM 节点的样式。
  • 创建布局树,并计算元素的布局信息。
  • 对布局树进行分层,并生成分层树。
  • 为每个图层生成绘制列表,并将其提交到合成线程。合成线程将图层分图块,并栅格化将图块转换成位图。
  • 合成线程发送绘制图块命令给浏览器进程。浏览器进程根据指令生成页面,并显示到显示器上。

构建 DOM 树

  • 转码(Bytes -> Characters)—— 读取接收到的 HTML 二进制数据,按指定编码格式将字节转换为 HTML 字符串
  • Tokens 化(Characters -> Tokens)—— 解析 HTML,将 HTML 字符串转换为结构清晰的 Tokens,每个 Token 都有特殊的含义同时有自己的一套规则
  • 构建 Nodes(Tokens -> Nodes)—— 每个 Node 都添加特定的属性(或属性访问器),通过指针能够确定 Node 的父、子、兄弟关系和所属 treeScope(例如:iframe 的 treeScope 与外层页面的 treeScope 不同)
  • 构建 DOM 树(Nodes -> DOM Tree)—— 最重要的工作是建立起每个结点的父子兄弟关系

样式计算

渲染引擎将 CSS 样式表转化为浏览器可以理解的 styleSheets,计算出 DOM 节点的样式。

CSS 样式来源主要有 3 种,分别是通过 link 引用的外部 CSS 文件、style标签内的 CSS、元素的 style 属性内嵌的 CSS。

页面布局

布局过程,即排除 script、meta 等功能化、非视觉节点,排除 display: none 的节点,计算元素的位置信息,确定元素的位置,构建一棵只包含可见元素布局树。如图:

其中,这个过程需要注意的是回流和重绘

生成分层树

页面中有很多复杂的效果,如一些复杂的 3D 变换、页面滚动,或者使用 z-indexing 做 z 轴排序等,为了更加方便地实现这些效果,渲染引擎还需要为特定的节点生成专用的图层,并生成一棵对应的图层树(LayerTree)

栅格化

合成线程会按照视口附近的图块来优先生成位图,实际生成位图的操作是由栅格化来执行的。所谓栅格化,是指将图块转换为位图

通常一个页面可能很大,但是用户只能看到其中的一部分,我们把用户可以看到的这个部分叫做视口(viewport)。在有些情况下,有的图层可以很大,比如有的页面你使用滚动条要滚动好久才能滚动到底部,但是通过视口,用户只能看到页面的很小一部分,所以在这种情况下,要绘制出所有图层内容的话,就会产生太大的开销,而且也没有必要。

显示

最后,合成线程发送绘制图块命令给浏览器进程。浏览器进程根据指令生成页面,并显示到显示器上,渲染过程完成。

YOLOv8 TensorRT C++部署实战详解:从XMake构建到推理流水线 本项目实现了一个基于YOLOv8和TensorRT的高性能火灾烟雾检测系统,具有以下核心特点: 技术架构:采用TensorRT 8.6+进行GPU加速推理,结合CUDA 12.1和OpenCV 4.8+,实现高效计算机视觉处理。系统使用XMake替代CMake构建,配置更简洁高效。 阅读详情

相关推荐

幸狐RV1106开发板实战:5分钟搞定Yolo8模型部署(附避坑指南)

本文详细介绍了在幸狐RV1106开发板上快速部署YOLOv8模型的实战流程。通过RKNN-Toolkit2工具链,将ONNX模型转换为RV1106 NPU专用的RKNN格式,并完成交叉编译与上板运行。文章重点分享了环境搭建、模型转换的关键步骤以及常见的避坑指南,帮助开发者高效实现边缘AI目标检测应用。

weixin_28677451的博客 912

从输入url到页面显示的全过程

4)第四次挥手:客户端接收到申请释放连接的报文后,再向服务器发送一个确认报文,等待服务器收到确认报文,服务器收到确认报文,就会进入关闭状态。如果返回的响应报文的状态为3xx,就需要重定向到其他URL,然后从头开始,然后网络线程会通过safeBrowsing来检查站点是不是恶意站点,如果是,就展示警告页面。1、首先,在输入的过程中,浏览器的UI线程会实时捕捉输入的内容,如果输入的不是网址或者协议不合法的话,那么搜索引擎会合成新的带搜索关键字的URL,准备进行搜索。然后进行布局和绘制,最终将页面呈现在屏幕上。

Mqyyy的博客 1593

SAR型ADC的电荷重分配技术解析

本文深入解析了SAR型ADC的核心技术——电荷重分配。通过类比“猜数字”游戏,阐述了其逐次逼近的工作原理,并重点剖析了电容阵列如何实现高速、低功耗的模数转换。文章还探讨了该技术在速度、能效及集成度方面的优势,并指出了电容匹配精度等实际挑战,为嵌入式与物联网设备中的ADC选型与应用提供了实用指南。

nnn11的博客 907

从URL输入到页面展示过程

从URL输入到浏览器页面展示的过程涉及到URL解析、DNS解析、TCP连接建立、HTTP请求发送、服务器处理和返回、响应接收、页面渲染和最终展示等一系列步骤。浏览器在这个过程中扮演了重要角色,负责协调和执行各个步骤,并将最终的页面呈现给用户。通过深入了解这个过程,我们可以更好地理解浏览器的工作原理和优化页面加载性能。

weixin_42560424的博客 1026

Thinkpad可以安装Win11吗?Thinkpad升级Win11教程

win11正式版推出之后,不少用户也想要体验一把新系统,但是不知道thinkpad是否支持win11,其实基本上现在在售的都是可以升级win11的。2、如果大家使用的是老款的ThinkPad,那么可以通过软件来检测自己是否支持win11。【电脑健康状况检查下载】答:在售的ThinkPad都是可以支持win11的,但是部分旧版本不支持。2、这时候想要升级win11的话,就可以通过镜像系统的方式来跳过系统检测。3、如果使用上面的软件检测可以支持win11,那么只要进入“设置”

xhp618的博客 2986

Win7/10/11文件拖拽导致资源管理器闪退问题

最近老是遇到把文件从资源管理器拖动到微信或者浏览器时,资源管理器直接闪退的问题,一开始在公司遇到了还以为是电脑配置太低,直到被封闭在家办公,发现自己的高级电脑也有这个问题,那就来了解了解问题是出在什么地方把。

Nicer_feng's blog 1万+

从输入url到页面展现的全过程

假定出现一种异常情况,即A发出的第一个连接请求报文段并没有丢失,而是在某些网络节点长时间滞留了,以致延误到连接释放以后的某个时间才到B。本来这是一个已失效的报文段。但是B收到此失效的连接请求报文段后,就误认为是A有发出一次新的连接请求。于是就向A发出确认报文段,同意建立连接。假定不采用三次握手,那么只要B发出确认,新的连接就建立了。由于现在A并没有发出建立连接的请求,因此不会理睬B的确认,也不会向B发送数据。但B却以为新的运输连接已经建立了,并一直等待A发来数据。B的许多资源就这样拜拜浪费了。

weixin_39357177的博客 1578

运动想象 (MI) 分类学习系列 (19) : EEG-TransNet

本文提出了一种基于注意力机制的卷积神经网络(EEG-TransNet),用于运动想象脑电图(MI-EEG)解码。该方法创新性地通过平均池化和方差池化提取多模态时间信息,并结合自注意力模块捕获长期依赖关系。消融实验表明,方差池化比最大池化更有效(p<0.05),且注意力模块和卷积编码器对特征判别性至关重要。可视化分析验证了该方法能学习到更具判别性的紧凑特征。该工作为MI-EEG解码提供了新的多尺度时间信息融合视角,代码已开源。

走在深度学习前沿的小宋 358

【网络】浏览器输入URL到页面显示经历的过程

流程 总体来说分为以下几个过程 NDS解析:将域名解析为IP地址 TCP连接:TCP三次握手 发送HTTP请求 服务器处理请求并返回HTTP报文 浏览器解析渲染画面 断开链接:TCP四次挥手 什么是URL URL就是我命平时俗称的网址,遵循下面的语法规则 scheme://host.domain:port/path/filename 各部分解释如下 scheme - 定义因特网的服务类型。常见的协议有http、https、ftp、file host - 定义域主机(默认www) domain - 域

Elephant_King的博客 1957

Coze智能体开发:扣子智能体设置多Agent模式

在扣子中创建智能体后,智能体默认使用单 Agent 模式。在单 Agent 模式下处理复杂任务时,你必须编写非常详细和冗长的提示词,而且你可能需要添加各种插件和工作流等,这增加了调试智能体的复杂性。调试时任何一处细节改动,都有可能影响到智能体的整体功能,实际处理用户任务时,处理结果可能与预期效果有较大出入。

王国平的博客 3712

修改 Alist 密码时报错?看看这个坑怎么解决!

启动服务后,再修改密码”。以后再遇到类似问题,先检查服务是否正常运行,说不定就能少踩不少坑。如果还有其他 Alist 的问题,欢迎在评论区留言交流~

代码简单说 Vue、JAVA、PHP、Node.js 熟练运用,接口、架构、性能全搞定。 1154

从输入URL到页面展示的过程详解

作为一个前端人员,面试时经常会被问及这个问题:“在浏览器从输入URL到页面展示中经历了什么过程”?这个问题我之前也是一知半解,随着对内容了解的越多,发现这个问题涵盖的面越广,涉及的知识也很多,所以今天将它整理一下,方便自己和其他小伙伴一起学习。 由于这个问题涉及知识很多,而且我也想把这些知识都一起整理一下,所以本文采用总-分-总的的行文思路,具体内容如下: 首先介绍整体流程所需要涉及的几个方面 其次分别介绍每个方面所涉及的知识 最后一节再详细的说明整体流程 要是有小伙伴觉得之前的内容很无聊,或者我说的不

蔡姐的博客 2995

YOLOv8全网首发:CVPR2026 MixerCSeg | DEGConv方向引导边缘门控,破解细长裂缝检测难题

DEGConv通过方向先验嵌入、边缘增强卷积和动态门控三大机制,针对性解决了YOLO在处理裂缝类细长、多方向、低对比度目标时的特征提取不足问题,显著提升了裂缝检测的精度与鲁棒性。

①答疑群聊服务;②YOLO大模型知识问答系统;③计算机视觉论文生成智能体; 516

从 URL 输入到页面展示的全过程

整个过程涉及网络层(DNS、TCP)、应用层(HTTP)、浏览器引擎(解析、渲染)等多个环节,优化性能(如减少 DNS 解析时间、压缩资源、避免重绘回流)可显著提升页面加载速度。解析 CSS 代码(内联样式、外部样式表),生成 CSSOM(CSS 对象模型)树,记录选择器与样式规则的映射关系。按照布局结果,将节点的样式(颜色、背景、阴影等)绘制到屏幕的像素点上(分层绘制,如文字层、图片层)。),会暂停 HTML 解析,优先加载/执行外部资源(JS 可能修改 DOM,需阻塞解析)。时自动添加)、端口(如。

郭小刀 638

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

输入url到页面展示的过程

多次看到这个问题,在此做个记录加深理解并说说自己的想法。 首先关于大致的过程自己画了张草图步骤分123步执行。 步骤分析: 1.关于url地址 一般我们输入的url地址可能会有三种形式 http://121.199.63.22:80 http://121.199.63.22 http://heyaniu.club 第一种:ip地址+端口号 第二种:ip地址 第三种:域名 第一种形式浏览器就可...

nightwishh的博客 594

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

从页面输入URL到页面展示过程中发生了什么

从页面输入URL到页面展示过程中发生了什么       这个问题在面试中出现的频率实在是不要太高,虽然看了很多关于此的文章,但心中一直没有给自己过一个说的过去的答案。今天在看李兵老师的浏览器工作原理与实践时发现了很多的细节,准备用自己的话总结一下,但是我又怕我说错了所以也会引用一些老师的原话,希望尽量可读性高一点-.- 大体介绍一下chrome浏览器多进程架构chromium。主要有五个进程 浏览器主进程:负责处理用户交互,管理子进程以及

奠基者 1164

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

输入url到页面展示的全过程

从输入url到页面展示的全过程 域名解析 建立TCP连接(3次握手) 浏览器发送HTTP请求 服务器响应HTTP请求 页面渲染 关闭连接(4次挥手) 一.域名解析 DNS(Domain Name System,域名系统),因特网上作为域名www.baidu.com和IP地址167.23.10.2相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串...

wding914的博客 826

导航流程——从输入URL到页面展示的过程

导航流程——从输入URL到页面展示的过程

qq_42966167的博客 1915

从输入URL到页面展示的详细过程

其实从输入URL到页面展示在我们眼前所经历的过程其实还是非常复杂的,牵扯到的知识点也是非常的庞杂。其中很多知识都会有专门的学科去研究,所以这里只是简单地概括一下大致流程:1、输入网址2、DNS解析3、建立tcp连接4、客户端发送HTPP请求5、服务器处理请求 6、服务器响应请求7、浏览器展示HTML8、浏览器发送请求获取其他在HTML中的资源。下面是转载自https://www.cnblogs.c...

lvxin15353715790的博客 1538

从输入URL到页面展示的详细过程(从输入url到页面展示到底发生了什么)

从输入URL到页面展示的这个过程中牵扯到太多知识点,这里做一个大概的整理。文章主要内容摘自以下参考文献,流程有调整,为个人整理。 参考文章主要有: https://www.cnblogs.com/xiaohuochai/p/9193083.html https://blog.youkuaiyun.com/wlk2064819994/article/details/79756669(转载自https://www...

qinian8的博客 8054

从url输入到页面展示的过程

从url输入到页面展示的过程 小白第一次发布文章,我就发最近写的一个常考面试题吧 当我们在web浏览器的地址栏中输入: www.baidu.com,然后回车,到底发生了什么 过程概览 对www.baidu.com这个网址进行DNS域名解析,得到对应IP地址 根据这个IP,找到对应的服务器,发起TCP的三次握手 建立TCP连接之后发送HTTP协议 服务器响应HTML代码,浏览器得到HTML代码 浏览器解析html代码,并且将请求HTML代码的资源(如js、png等)(先得到html代码,才能找到这些资源

Hill__Cheung的博客 294

从输入URL到展示出页面的这个过程~

浏览器 UI 进程接收输入。它需要判断:是搜索词还是 URL如果是搜索词 → 调用默认搜索引擎如果是 URL → 规范化(补齐协议,去掉多余空格)浏览器可能提前做 DNS 预解析,TCP/TLS 预连接),甚至 预获取。

zjj20051102的博客 953

浏览器从输入URL到页面展示过程

浏览器从输入URL到页面展示过程1.用户输入2.URL请求过程3.准备渲染进程4.提交文档5.渲染阶段 1.用户输入 浏览器的地址栏会判断用户输入的关键字是搜索内容还是URL, 如果输入内容符合URL规则,地址栏会根据规则把这段内容加上协议合成完整URL 浏览器加载地址时需要等待提交文档阶段页面内容才会被替换 2.URL请求过程 浏览器进程通过进程间通信把URL请求发送至网络进程,网络进程接收到后发起真正URL请求流程: 首先查找本地缓存是否缓存了该资源。如果有缓存资源则直接返回;如果没有则进行DNS

289

输入一个url到浏览器页面展示都经历了哪些过程

在日常的浏览器访问过程中,我们肯定会访问n多页面,但是我们输入一个网址后是如何变成一个页面展示在我们面前,从一个url到页面的展示这个过程中,我们的浏览器都经历了一些什么? 步骤 →1- 输入网址→2- 缓存解析→3- 域名解析→4- tcp连接,三次握手→6- 页面渲染 一:输入网址 那肯定是输入你要访问的网站网址了,俗称url; 二:缓存解析 浏览器获取了这个ur...

ts876762061的博客 2863

简述从url输入到页面展示的过程

一旦建立了TCP连接,浏览器会通过HTTP协议发送一个HTTP请求给服务器。这个请求包含了需要获取的页面的信息,例如请求的方法(GET/POST),请求头、Cookies等。服务器接收到浏览器发送的HTTP请求后,会根据请求的信息处理并生成响应。服务器可能会从数据库中读取数据,执行服务器端代码,或者处理其他逻辑。服务器生成完整的HTTP响应后,使用TCP连接将响应发送回浏览器。浏览器接收到服务器的响应后,会对响应进行解析。如果响应状态码为200,表示请求成功,浏览器会继续处理接下来的步骤。

BradenHan的专栏 356

从输入URL到展示页面的全过程

若 JS 需要访问 CSSOM(如读取元素样式),浏览器会等待 CSSOM 构建完成后再执行 JS。资源最后修改时间(精度为秒,可能不准)。资源唯一标识符(哈希值),优先级高。

sujiu200的博客 362
上一篇: 深拷贝与浅拷贝
下一篇: 为什么使用 Virtual DOM
小码哥・Martin
博客等级 码龄18年 10粉丝 225原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小码哥・Martin

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值