游览器输入URL并Enter时都发生了什么 面试完美回答

文章目录

      • 前言
      • URL解析
      • DNS解析
        • **浏览器缓存**
        • **操作系统缓存**:
        • **路由器缓存**:
        • ISP(Internet service provider)缓存
        • DNS递归解析
        • IP地址的获取
        • 缓存结果
      • 建立TCP连接
      • 发送HTTP请求
      • 服务器响应
      • TCP链接断开
      • 渲染页面
        • 解析一 HTML解析过程
        • 解析二 生成CSS
        • 解析三 构建Render Tree
        • 解析四 布局(Layout)与绘制(Print)

前言

浏览器会经历多个步骤才能找到并加载该网站。以下是这个过程的简要说明: 面试会考

URL解析

根据URL解析出请求的协议以及请求的资源地址,如果协议或者主机名不合法,浏览器将会将输入的内容传递给搜索引擎检索;如果协议及主机名合法,浏览器会将URL中存在的非法字符进行转义

DNS解析

DNS浏览器首先需要将域名,转换为对应的IP地址。这个过程称为DNS(域名系统)解析。如果有缓存则查找缓存

浏览器缓存

浏览器首先检查其内部缓存。如果之前访问过该资源且缓存尚未过期,浏览器将直接使用缓存中的数据来快速显示页面。

操作系统缓存

如果浏览器缓存中没有找到相关记录,它会询问操作系统的DNS缓存。操作系统通常也会缓存最近查询的域名及其对应的IP地址。

路由器缓存

如果操作系统中也没有找到,DNS请求将发送到本地网络的路由器。许多路由器都具备DNS缓存功能,可以存储最近的DNS查询结果,以加速当地网络中的访问。

ISP(Internet service provider)缓存

如果以上都没有缓存记录,请求最终会发送到你的互联网服务提供商(ISP),它们通常会有更大范围的DNS缓存

DNS递归解析

如果所有本地缓存查找都失败,DNS查询就变成了一个递归查询过程,涉及到多个DNS服务器

  1. 根域名服务器 首先, 尔的DNS查询会被发送到根域名服务器 服务器是最高级别的DNS服务 负责重定向到负责管理顶级域(.com .net) 顶级域名服务器
  2. 顶级域名(TLD服务器) 服务器会告诉你的ISP的DNS服务器去查询哪个顶级域名服务器来找到.com域的信息 这个服务器掌握.com域名及其相应服务器的信息
  3. 权威域名服务器 一旦你的DNS查询到达了正确的顶级域名服务 会进一步定向到负example.com 权威务器 权威服务器有该域对应的具体IP地址
IP地址的获取

最终,权威域名服务器会提供wwwxample.com域名对应的IP地址(如图中的93.184.216.34),这个信息会被发送回用户的电脑存结果

缓存结果

IP地址被找到,它通常会被存储在浏览器、操作系统、路由器或ISP的DNS缓存中,以便未来的查询可以更快得到解析。

建立TCP连接

具体在这篇文章https://blog.csdn.net/weixin_63625059/article/details/142683822?spm=1001.2014.3001.5501

发送HTTP请求

HTTP(Hypertext Transfer Protocol,超文本传输协议)
它是建立在TCP连接之上的应用层协议。
一旦TCP连接建立,客户端(通常是Web浏览器)就可以通过这个连接发送一个HTTP请求到服务器

这个请求包含了方法(GET、POST等)、URL(统一资源标识符)和协议版本,以及可能包含的请求头和请求体

服务器响应

服务器接收到HTTP请求后,会处理这个请求并返回一个HTTP响应

响应通常包括一个状态码(如200表示成功,404表示未找到),响应头,以及任何响应内容(如请求的HTML文件)

TCP为HTTP提供了一个可靠的通道,确保数据正确 完整地从服务器传输到客户

TCP链接断开

https://blog.csdn.net/weixin_63625059/article/details/142683822?spm=1001.2014.3001.5501

渲染页面

请添加图片描述

解析一 HTML解析过程

因为默认情况下服务器会给浏览器返回index.html文件

所以解析HTML是所有步骤的开始解析HTML,会构建DOMTree

解析二 生成CSS

在解析的过程中,如果遇到CSS的link元素,那么会由浏览器负责下载对应的CSS文件

注意:下载CSS文件是不会影响DOM的解析的

浏览器下载完CSS文件后,就会对CSS文件进行解析,解析出对应的规则树
我们可以称之为CSSOM(CSS Obiect Model,CSS对象模型)

解析三 构建Render Tree

当有了DOMTree和CSSOMTree后,就可以两个结合来构建Render Tree

注意一:link元素不会堵塞DOM Tree的构造过程,但是会堵塞Render Tree的构造过程,这是因为Render Tree在构建时,需要对应的CSSOM Tree

解析四 布局(Layout)与绘制(Print)

第四步是在渲染树(RenderTree)上运行布局(Layout)以计算每个节点的几何体
染树会表示显示哪些节点以及其他样式,但是不表示每个节点的尺寸、位置等信息;口布局是确定呈现树中所有节点的宽度、高度和位置信息

第五步是将每个节点绘制(Paint)到屏幕上
在绘制阶段,浏览器将布局阶段计算的每个frame 转为屏幕

包括将元素的可见部分进行绘制,比如文本、颜色、边框、阴影、替换元素(比如img)
请添加图片描述

Match selectors:浏览器遍历CSSOM 选择器 DOM树中的元素匹面 这个过程决定了那些CSS规则应用于哪些DOM元素

Compute style:在选择器匹配后 浏览器计算每个元素的最终样式!这包括计算具体的样式值,处理继承的样式以及解析因层叠产生的任何冲突

Construct frames:这通常是指生成布局树,它是染树的一部分,仅包含要布局和绘制的元素。这一步骤涉及确定文档的结构层次和包含块

布局树和渲染树是有微小的差异,布局树是渲染树的子集,不包含染树中元素的颜色、 背景、 阴影等信息

文章到这里就结束了 如果对你有所帮助的话 就点个关注吧 会持续更新技术文章

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/438039.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

U盘目录损坏数据恢复全攻略

一、U盘目录损坏现象描述 U盘作为我们日常生活中常用的存储设备,因其小巧便携、存储容量大等特点而备受青睐。然而,在使用U盘的过程中,有时会遇到目录损坏的问题。目录损坏通常表现为U盘中的文件夹无法正常打开,或者文件无法读取…

云栖实录 | 开源大数据全面升级:Native 核心引擎、Serverless 化、湖仓架构引领云上大数据发展

本文根据2024云栖大会实录整理而成,演讲信息如下: 演讲人: 王 峰 | 阿里云智能集团研究员、开源大数据平台负责人 李 钰|阿里云智能集团资深技术专家 范 振|阿里云智能集团高级技术专家 李劲松|阿里云…

docker部署minio文件服务器

1. 拉取镜像 docker search minio docker pull minio/minio2. 创建映射 mkdir -p /root/docker_app/minio_data mkdir -p /root/docker_app/minio_config3. 执行docker run 自定义用户和秘钥安装: admin/admin123456 docker run -p 9000:9000 -p 9001:9001 -d --name mini…

【有啥问啥】大型语言模型的涌现能力(Emergent Abilities):新一代AI的曙光

大型语言模型的涌现能力(Emergent Abilities):新一代AI的曙光 随着人工智能技术的飞速发展,大型语言模型(Large Language Model,LLM)展现出了令人惊叹的涌现能力。这种能力并非模型规模简单线性…

Unity3D播放GIF图片使用Animation来制作动画

系列文章目录 unity工具 文章目录 系列文章目录👉前言👉一、下载GIF动图,用PS制作导出帧动画图片👉二、使用Animation制作动画👉三、脚本控制动画播放👉壁纸分享👉总结👉前言 unity播放gif图片,本身是不支持的,但是可以使用其他方法来实现, 1.有一种使用System…

tortorise数据库迁移变化aerich

数据库迁移 使用场景,当需要修改定义的数据库中表的数据时,就可以利用aerich进行迁移改动 例如 class Asset(models.Model):aid fields.CharField(max_length50, pkTrue)asset_name fields.CharField(max_length150)target_name fields.CharField(…

AI 搜索引擎工具集合

🐣个人主页 可惜已不在 🐤这篇在这个专栏AI_可惜已不在的博客-CSDN博客 🐥有用的话就留下一个三连吧😼 目录 前言 AI 搜索引擎 前言 在信息爆炸的时代,A 搜索引擎应运而生。它以强大的人工智能技术为支撑&#xff0…

day2网络编程项目的框架

基于终端的 UDP云聊天系统 开发环境 Linux 系统GCCUDPmakefilesqlite3 功能描述 通过 UDP 网络使服务器与客户端进行通信吗,从而实现云聊天。 Sqlite数据库 用户在加入聊天室前,需要先进行用户登录或注册操作,并将注册的用户信息&#xf…

windows配置C++编译环境和VScode C++配置(保姆级教程)

1.安装MinGW-w64 MinGW-w64是一个开源的编译器套件,适用于Windows平台,支持32位和64位应用程序的开发。它包含了GCC编译器、GDB调试器以及其他必要的工具,是C开发者在Windows环境下进行开发的重要工具。 我找到了一个下载比较快的链接&#…

第四届机器人、自动化与智能控制国际会议(ICRAIC 2024)征稿

第四届机器人、自动化与智能控制国际会议(ICRAIC 2024)由湖南第一师范学院主办,南京师范大学、山东女子学院、爱迩思出版社(ELSP)协办。 大会将专注于机器人、数字化、自动化、人工智能等技术的开发和融合&#xff0c…

HarmonyOS鸿蒙系统开发应用程序,免费开源DevEco Studio开发工具

DevEco Studio 是华为为 HarmonyOS 和 OpenHarmony 开发者提供的官方集成开发环境(IDE),它基于 IntelliJ IDEA Community 版本打造,提供了代码编辑、编译、调试、发布等一体化服务。 一、DevEco Studio支持系统 DevEco Studio支持…

更美观的HTTP性能监测工具:httpstat

reorx/httpstat是一个旨在提供更美观和详细HTTP请求统计信息的cURL命令行工具,它能够帮助开发者和运维人员深入理解HTTP请求的性能和状态。 1. 基本概述 项目地址:https://github.com/reorx/httpstat语言:该工具主要是以Python编写&#xff…

C++之多线程

前言 多线程和多进程是并发编程的两个核心概念,它们在现代计算中都非常重要,尤其是在需要处理大量数据、提高程序性能和响应能力的场景中。 多线程的重要性: 资源利用率:多线程可以在单个进程中同时执行多个任务,这可以更有效地利用CPU资源,特别是在多核处理器上。 性…

SpringSession微服务

一.在linux中确保启动起来redis和nacos 依赖记得别放<dependencyManagement></dependencyManagement>这个标签去了 1.首先查看已经启动的服务 docker ps 查看有没有安装redis和nacos 2.启动redis和nacos 发现没有启动redis和nacos,我们先来启动它。&#xff0c;…

BiLSTM模型实现电力数据预测

基础模型见&#xff1a;A020-LSTM模型实现电力数据预测 1. 引言 时间序列预测在电力系统管理、负荷预测和能源优化等领域具有重要意义。传统的单向长短期记忆网络&#xff08;LSTM&#xff09;因其在处理时间序列数据中的优势&#xff0c;广泛应用于此类任务。然而&#xff0…

会议平台后端优化方案

会议平台后端优化方案 通过RTC的学习&#xff0c;我了解到了端对端技术&#xff0c;就想着做一个节省服务器资源的会议平台 之前做了这个项目&#xff0c;快手二面被问到卡着不知如何介绍&#xff0c;便有了这篇文章 分析当下机制 相对于传统视频平台&#xff08;SFU&#xff…

Pikachu-Cross-Site Scripting-DOM型xss

DOM型xss DOM型XSS漏洞是一种特殊类型的XSS,是基于文档对象模型 Document Object Model (DOM)的一种漏洞。是一个与平台、编程语言无关的接口&#xff0c;它允许程序或脚本动态地访问和更新文档内容、结构和样式&#xff0c;处理后的结果能够成为显示页面的一部分。 dom就是一…

wordpress源码资源站整站打包32GB数据,含6.7W条资源数据

源码太大了&#xff0c;足足32gb&#xff0c;先分享给大家。新手建立资源站&#xff0c;直接用这个代码部署一下&#xff0c;数据就够用了。辅助简单做下seo&#xff0c;一个新站就OK了。 温馨提示&#xff1a;必须按照顺序安装 代码下载

WPS使用越来越卡顿

UOS统信wps频繁的使用后出现卡顿问题&#xff0c;通过删除或重命名kingsoft文件缓存目录。 文章目录 一、问题描述二、问题原因三、解决方案步骤一步骤二步骤三 一、问题描述 用户在频繁的使用wps处理工作&#xff0c;在使用一段时间后&#xff0c;用户反馈wps打开速度慢&…

【EXCEL数据处理】000010 案列 EXCEL文本型和常规型转换。使用的软件是微软的Excel操作的。处理数据的目的是让数据更直观的显示出来,方便查看。

前言&#xff1a;哈喽&#xff0c;大家好&#xff0c;今天给大家分享一篇文章&#xff01;创作不易&#xff0c;如果能帮助到大家或者给大家一些灵感和启发&#xff0c;欢迎收藏关注哦 &#x1f495; 目录 【EXCEL数据处理】000010 案列 EXCEL单元格格式。EXCEL文本型和常规型转…