深入剖析从输入URL到页面显示过程原理

yizhihongxing

下面我将详细讲解“深入剖析从输入URL到页面显示过程原理”的完整攻略。

1.域名解析(DNS解析)

当用户在浏览器中输入一个URL时,浏览器首先需要将URL中的域名解析为IP地址,从而定位到服务器。这个解析的过程叫做DNS解析。具体过程如下:

  1. 浏览器首先会检查浏览器缓存中是否保存了该域名的IP地址。
  2. 如果浏览器缓存中没有,那么浏览器会向本地DNS服务器发送一个请求,询问该域名的IP地址。
  3. 如果本地DNS服务器也没有该域名的IP地址,那么它会向根DNS服务器发送一个请求。
  4. 根DNS服务器返回顶级域名服务器的地址。
  5. 本地DNS服务器向顶级域名服务器请求查询权威域名服务器的IP地址。
  6. 本地DNS服务器向权威域名服务器请求该域名的IP地址。
  7. 权威域名服务器返回该域名的IP地址。
  8. 本地DNS服务器将该IP地址缓存起来,并且把它返回给浏览器。
  9. 浏览器将该IP地址保存到本地缓存中。

示例说明:
用户在浏览器中输入 https://www.baidu.com/,浏览器会将该URL中的域名 www.baidu.com 发送给本地DNS服务器进行解析,若本地DNS服务器没有缓存该域名对应的IP地址,则向根DNS服务器请求解析。由于根DNS服务器只能返回顶级域名服务器的地址,因此本地DNS服务器再向顶级域名服务器请求查询权威域名服务器的IP地址,最终获取到 www.baidu.com 对应的IP地址并将其缓存起来。

2.建立连接

在得到该域名的IP地址之后,浏览器会开始建立与服务器的TCP连接。该过程包括三次握手:

  1. 客户端向服务器发送一个 SYN 包,请求建立连接。
  2. 服务器向客户端发送一个 SYN-ACK 包,告诉客户端可以建立连接。
  3. 客户端向服务器发送一个 ACK 包,确认建立连接。

示例说明:
以用户在浏览器中输入 https://www.baidu.com/ 为例,浏览器会使用该域名对应的IP地址建立TCP连接,即向该IP地址发送SYN包,服务器接收到SYN包后会返回一个SYN-ACK包,浏览器再发送一个ACK包,建立TCP连接。

3.发送请求和接收响应

建立好TCP连接之后,浏览器会向服务器发送HTTP请求,并等待服务器返回响应。具体过程如下:

  1. 浏览器向服务器发送HTTP请求报文。
  2. 服务器接收到HTTP请求报文后,解析报文并处理请求。
  3. 服务器生成HTTP响应报文。
  4. 服务器向浏览器发送HTTP响应报文。
  5. 浏览器接收到HTTP响应报文后,解析报文并处理响应。

示例说明:
以用户在浏览器中输入https://www.baidu.com/为例,浏览器会向服务器发送HTTP请求报文,请求服务器返回主页的HTML文件,服务器接收到请求后会处理并返回对应的HTML文件作为响应报文,浏览器接收到响应报文后解析解码并显示页面。

4.渲染页面

浏览器在接收到服务器返回的HTML文件后,会将HTML文件解析生成一棵DOM树,并根据CSS文件生成CSSOM树,最后将这两棵树合并成一个Render树,根据Render树进行页面的渲染和布局。

示例说明:
以用户在浏览器中输入https://www.baidu.com/为例,浏览器会接收到服务器返回的HTML文件,然后将其解析生成DOM树和CSSOM树,然后将这两棵树合并成一个Render树,最后进行页面渲染和布局。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:深入剖析从输入URL到页面显示过程原理 - Python技术站

(0)
上一篇 2023年6月10日
下一篇 2023年6月10日

相关文章

  • 利用CSS,链接下划线也玩自定义

    下面是利用CSS自定义链接下划线的攻略: 第一步:取消下划线 首先,要实现自定义下划线,首先需要取消默认的下划线。这可以通过CSS中的text-decoration属性来实现。将其设置为none即可取消下划线。 a { text-decoration: none; } 第二步:使用border-bottom添加下划线 取消下划线后,需要使用其他方式添加下划线…

    css 2023年6月9日
    00
  • 利用CSS3的3D效果制作正方体

    制作3D正方体这个过程通常可以分为以下几个步骤: 1.确定一个容器,为3D场景提供空间,可以设定宽、高、以及透视效果的角度。 2.设置立方体的六个面,让它们呈现出正方形。 3.将六个面浮起来,让立方体看起来具有体积感。 下面将详细讲解如何实现以上的步骤,其中包括两个样例说明: 1.基础版3D正方体: HTML代码如下: <div class=&quot…

    css 2023年6月10日
    00
  • 魔兽世界怀旧服决斗俱乐部新赛有什么奖励 决斗俱乐部新赛季规则详解

    魔兽世界怀旧服决斗俱乐部新赛奖励 近日,魔兽世界怀旧服官方公布了决斗俱乐部新赛的规则和奖励,本文将为大家详细解读。 奖励 本次决斗俱乐部新赛季的奖励主要有以下四个方面: 等级排名奖励:在赛季结束后,将统计各选手决斗场地对战获胜次数排名后,奖励前列选手不同等级的徽章。 标准淘汰赛奖励:决斗俱乐部将会举办标准淘汰赛,根据选手在淘汰赛中的表现,赠送丰富的奖励。例如…

    css 2023年6月10日
    00
  • 简单的CSS叠加外边距示例

    我们来详细讲解一下“简单的CSS叠加外边距示例”的完整攻略。 什么是CSS外边距叠加 在CSS中,相邻的两个元素之间如果存在margin值时,它们之间的margin会发生叠加(也叫“合并”),即margin值会取两者中较大的一个,而不是简单的将两者相加。 外边距叠加规则 CSS中,“相邻的元素”指的是两个元素之间没有任何非空内容、padding或border…

    css 2023年6月9日
    00
  • 用网页技术CSS实现网页背景渐变的四种代码设置

    下面是用网页技术CSS实现网页背景渐变的四种代码设置的攻略。 一、线性渐变 线性渐变是指沿着一条直线从一个颜色渐变到另一个颜色。CSS实现线性渐变的代码如下所示: body { background: linear-gradient(to right, #FFD662, #F90E41); } 这里通过background属性来设置背景渐变效果,括号中的to…

    css 2023年6月9日
    00
  • CSS3实现图片抽屉式效果的示例代码

    下面详细讲解一下“CSS3实现图片抽屉式效果的示例代码”的完整攻略。 首先,我们来介绍一下实现这个效果的基本思路。我们可以利用CSS3中的transition属性及伪类(:hover)来实现。transition属性可以设置元素的过渡效果,而伪类可以选择当前元素处于某一状态时的样式。我们可以通过将图片元素的高度设置为0,并通过:hover伪类选择器将高度设置…

    css 2023年6月11日
    00
  • photoshop制作出时尚耐看的深蓝色网站导航效果

    下面是Photoshop制作出时尚耐看的深蓝色网站导航效果的完整攻略: 一、准备工作 打开Photoshop软件,创建一个新的文件,设置文件宽度为1200像素,高度为500像素,背景色为白色。 进入工具栏,选择矩形工具,选中填充颜色为#2e3d49(深蓝色),新建一个矩形,大小设置为1200×80像素,居中放置在新建文件的顶部。 二、制作导航背景效果 选择新…

    css 2023年6月10日
    00
  • jquery 输入框查找关键字并提亮颜色的实例代码

    首先,我们需要引入jQuery库,因为我们将使用jQuery库的一些方法。 <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.min.js"></script> 然后,我们需要在HTML中定义一个输入框和一个展示搜索结果的容器: &…

    css 2023年6月11日
    00
合作推广
合作推广
分享本页
返回顶部