浏览器输入 URL 后的那些事儿

本文涉及的产品
全局流量管理 GTM,标准版 1个月
云解析 DNS,旗舰版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
简介: 本文介绍了浏览器输入URL后到页面展示的完整过程,涵盖DNS解析、TCP三次握手、HTTP请求与响应、以及浏览器渲染等关键步骤。首先,浏览器通过DNS解析将域名转换为IP地址;接着,通过TCP三次握手建立连接;随后发送HTTP请求获取网页内容;最后,浏览器解析HTML、CSS并构建渲染树,完成页面渲染。整个过程涉及网络协议和浏览器内部机制的协同工作。

浏览器输入 URL 后的那些事儿

 

本次主题是浏览器输入URL之后发生了什么?

图片1.png

从用户输入到浏览器显示页面的完整过程,涉及很多底层的网络基础知识。

一、涉及的网络基础知识

  1. DNS 解析:

DNS 是一种分布式数据库,负责将人类容易记忆的域名转换为机器能够理解的 IP 地址,就像用电话簿可以通过名字查找到对应的电话号码。

  1. DNS解析的过程:

(1)浏览器缓存:浏览器首先会检查自己是否缓存域名对应的IP地址,如果有缓存并且没有过期,就直接使用缓存结果。

(2)操作系统缓存:如果浏览器没有缓存,就会查询操作系统的缓存。

(3)路由器缓存:如果操作系统也没有缓存,会继续查询路由器的缓存。

(4)ISP DNS 服务器:如果路由器也没有缓存,浏览器会向 ISP 的 DNS 服务器发起查询。

(5)递归查询:如果 ISP 的 DNS 服务器也没有结果,它会进行递归查询,向其他 DNS 服务器询问,直到找到结果为止。

通过以上步骤,浏览器最终获取 www example com 对应的IP地址,比如 93.184.216.34。

TCP 连接:获取到IP地址后,浏览器需要与服务器建立连接,使用 TCP 协议。

图片2(1).png


二、三次握手

  1. 三次握手:TCP 连接的建立需要经过三次握手过程。
  2. 第一次握手,浏览器向服务器发送一个 SYN 请求包,表示希望建立连接。
  3. 第二次握手,服务器收到 SYN 包后,回应 SYN/ACK 包表示同意建立连接。
  4. 第三次握手,客户端收到 SYN/ACK  包后,再发送 ACK 包确认连接建立。

通过这三次握手,浏览器与服务器之间的TCP连接正式建立。

发送 HTTP 请求:在 TCP 连接建立之后,浏览器会发送 HTTP 请求来获取网页内容。HTTP 是一种无状态的协议,客户端向服务器发送请求,服务器处理请求后返回响应。

构建 HTTP 请求:一个典型的 HTTP 请求包括以下部分。

请求行:包含请求方法,请求 URL 和 HTTP 版本。

请求头:包含一些描述客户端环境、请求主体等信息的元数据,如 User-Agent、Host 等。

请求主体:在POST请求中包含需要发送的数据。

示例,HTTP 请求:服务器接收到 HTTP 请求后,会进行处理,并返回 HTTP 响应。服务器处理请求:服务器会根据请求的内容进行相应的处理操作。静态资源请求:如 HTML 文件、CSS 样式表、图片等,服务器会直接从文件系统中读取并返回。动态资源请求:如使用 PHP、Node,js 等动态语言生成的内容,服务器会先执行相应的代码,生成内容后再返回。

构建 HTTP 响应:一个典型的 HTTP 响响应包括以下部分,状态行:包含 HTTP 版本、状态码和状态描述。响应头:包含一些描述响应内容的元数据,如 Content-Type,Content-Length 等。响应主体:包含实际的响应数据,如 HTML 文档图片等。示例 HTTP 响应。

浏览器渲染:浏览器接收到服务器返回的 HTTP 响应后会进行渲染,将网页内容展示给用户。

图片2(2).png


三、渲染过程

解析 HTML,浏览器会将HTML解析成 DOM 树,解析 CSS,浏览器会解析 CSS,生成 CSSOM 树。

构建渲染树:将 DOM 树和 CSSOM 树结合构建渲染树。布局:根据渲染数计算每个节点在屏幕上的位置和大小。绘制:将渲染树的每个节点绘制到屏幕上。

JavaScript 的执行,在解析HTML的过程中,如果遇到 JavaScript 代码,浏览器会暂停 HTML 的解析,先执行 JavaScript, JavaScript 可以修改DOM和 CSSOM,因此会影响最终的渲染结果。当所有资源都加载并渲染完毕后,整个过程结束。用户可以看到完整的网页内容,并与之进行交互。以上就是在浏览器输入 URL 到页面展示的完整过程。

图片2(3).png

以上为分享全部内容。

 

 

相关文章
|
9月前
|
缓存 网络协议 前端开发
当浏览器输入url的时候会发生什么?
当浏览器输入url的时候会发生什么?
119 0
|
7月前
|
缓存 网络协议 前端开发
一步步揭秘:浏览器输入URL后的那些事儿
大家好,我是小米!你有没有好奇过,当你在浏览器输入一个网址并按下回车键后,到底发生了什么神奇的过程?从DNS解析到TCP连接,从发送HTTP请求到浏览器渲染,本文将带你深入了解这个复杂而又迷人的过程,让我们一起探索吧!
76 2
|
6月前
|
缓存 JavaScript 前端开发
浏览器对地址栏中输入的URL的处理过程
【8月更文挑战第20天】
166 0
|
2月前
|
缓存 网络协议 JavaScript
第八问:在浏览器中输入URL后发生了什么?
当在浏览器中输入URL并按下回车键时,会经历一系列复杂的过程:1. 用户输入URL;2. DNS解析域名;3. 建立TCP连接;4. 发送HTTP/HTTPS请求;5. 服务器处理请求;6. 浏览器渲染页面;7. 页面展示。每个步骤涉及不同的技术和协议,确保数据的准确传输和页面的正确显示。
40 0
|
3月前
|
缓存 网络协议 JavaScript
浏览器输入url之后最后网页渲染出来经过了什么
【10月更文挑战第31天】从浏览器输入 URL 到网页渲染出来是一个涉及多个环节和技术的复杂过程,每个环节都对最终的网页显示效果和用户体验有着重要的影响。
43 3
|
3月前
|
存储 缓存 网络协议
计算机网络常见面试题(二):浏览器中输入URL返回页面过程、HTTP协议特点,GET、POST的区别,Cookie与Session
计算机网络常见面试题(二):浏览器中输入URL返回页面过程、HTTP协议特点、状态码、报文格式,GET、POST的区别,DNS的解析过程、数字证书、Cookie与Session,对称加密和非对称加密
|
3月前
|
域名解析 缓存 网络协议
浏览器中输入URL返回页面过程(超级详细)、DNS域名解析服务,TCP三次握手、四次挥手
浏览器中输入URL返回页面过程(超级详细)、DNS域名解析服务,TCP三次握手、四次挥手
|
9月前
|
缓存 负载均衡 网络协议
在浏览器地址栏中输入URL后发生了什么
这是一个关于网页加载过程的概述:首先,浏览器查询IP地址,通过DNS解析域名;接着,建立TCP连接,发起HTTP请求;服务器处理请求并返回HTTP响应;最后,浏览器解析和渲染网页内容。过程中涉及DNS缓存、TCP三次握手、HTTP请求与响应、HTML解析、CSS和JS加载,以及渲染树的构建。为了优化网站性能,可以减少DNS查询、合并文件、压缩资源、提前加载CSS和延迟加载JS。
|
4月前
|
缓存 网络协议 前端开发
浏览器输入一个URL后,发生了什么?
浏览器输入一个URL后,发生了什么?
55 1
|
4月前
|
域名解析 缓存 网络协议
浏览器输入 URL 回车后会经历哪些步骤?
本文首发于微信公众号“前端徐徐”,详细解析了从在浏览器中输入URL到页面完全呈现的全过程,涵盖检查缓存、URL解析、DNS解析、TCP连接、HTTP请求、服务器响应、浏览器处理响应、页面解析与渲染、关闭TCP连接等关键步骤。通过这些步骤,帮助读者深入了解互联网的工作原理,提升网站性能和用户体验。
51 0

热门文章

最新文章