从输入URL到页面展示到底发生了什么?--01
在浏览器中输入一个URL并按下回车键后,会发生一系列复杂且有条不紊的步骤,从请求服务器到最终页面展示在你的屏幕上。这个过程可以分为以下几个关键步骤:
- URL 解析
- DNS 查询
- TCP 连接
- 发送 HTTP 请求
- 服务器处理请求
- 接收 HTTP 响应
- 浏览器渲染页面
1. URL 解析(示例)
URL(Uniform Resource Locator)是一种统一资源定位符,它包含了访问资源所需的所有信息。一个典型的URL格式如下:
http://www.example.com:80/path/to/resource?query=param#fragment
解析过程中,浏览器会将URL拆分为多个部分:
- 协议(Scheme):如
http或https。 - 主机(Host):如
www.example.com。 - 端口(Port):默认为80(HTTP)或443(HTTPS),如果没有显式指定,浏览器会使用默认端口。
- 路径(Path):服务器上的资源路径。
- 查询参数(Query Parameters):以
?开头的参数部分。 - 片段标识符(Fragment Identifier):以
#开头的部分,指向页面内的某个位置。
2. DNS 查询
浏览器需要将URL中的主机名转换为IP地址,这个过程通过DNS(Domain Name System)来完成。DNS 查询的步骤包括:
- 浏览器首先检查本地缓存中是否有该域名的IP地址。
- 如果没有,浏览器会向本地DNS服务器发送查询请求。
- 本地DNS服务器会递归查询其他DNS服务器,直到找到对应的IP地址并返回给浏览器。
3. TCP 连接
得到了IP地址后,浏览器需要与服务器建立连接。这个过程使用TCP(Transmission Control Protocol)完成。TCP连接的过程包括三次握手:
- 客户端发送SYN(同步)包:请求建立连接。
- 服务器返回SYN-ACK(同步-确认)包:同意建立连接。
- 客户端发送ACK(确认)包:确认连接建立。
4. 发送 HTTP 请求
TCP连接建立后,浏览器会发送一个HTTP请求。一个典型的HTTP请求包括以下部分:
- 请求行(Request Line):包含请求方法(如GET或POST)、请求的URL路径和HTTP版本。
- 请求头(Headers):包含客户端信息、期望的响应格式等。
- 请求体(Body):POST请求时可能包含提交的数据。
5. 服务器处理请求
服务器接收到HTTP请求后,会进行处理:
- 解析请求:服务器解析请求行和请求头,提取所需信息。
- 路由请求:根据请求路径和方法,将请求路由到对应的处理程序。
- 生成响应:处理程序处理请求后生成HTTP响应,包括响应行、响应头和响应体。
6. 接收 HTTP 响应
浏览器接收到服务器的HTTP响应后,会进行解析:
- 解析响应行:确定HTTP状态码(如200表示成功,404表示资源未找到)。
- 解析响应头:提取响应的元数据,如内容类型、内容长度等。
- 解析响应体:获取实际的数据内容(如HTML、CSS、JavaScript)。
7. 浏览器渲染页面
浏览器解析并渲染HTML内容的过程包括以下步骤:
- 构建DOM树:解析HTML文档并构建DOM(文档对象模型)树。
- 构建CSSOM树:解析CSS文件并构建CSSOM(CSS对象模型)树。
- 执行JavaScript:如果HTML中包含JavaScript文件,浏览器会下载并执行它们。
- 构建渲染树:将DOM树和CSSOM树结合,构建渲染树。
- 布局和绘制:根据渲染树进行布局计算,将元素的位置和大小确定后进行绘制,将页面内容显示在屏幕上。
这篇博客可以作为面试八股,拱大家使用
从输入URL到页面展示到底发生了什么?--01的更多相关文章
- 【原】老生常谈-从输入url到页面展示到底发生了什么
刚开始写这篇文章还是挺纠结的,因为网上搜索“从输入url到页面展示到底发生了什么”,你可以搜到一大堆的资料.而且面试这道题基本是必考题,二月份面试的时候,虽然知道这个过程发生了什么,不过当面试官一步步 ...
- 【转】老生常谈-从输入url到页面展示到底发生了什么
今天看到了一篇很详细地解释了从输入url到页面展示过程的文章,好文章不能错过,所以转到自己这里来了. 原文地址:老生常谈-从输入url到页面展示到底发生了什么 以下为原文: 刚开始写这篇文章还是挺纠结 ...
- (转)老生常谈-从输入url到页面展示到底发生了什么
刚开始写这篇文章还是挺纠结的,因为网上搜索"从输入url到页面展示到底发生了什么",你可以搜到一大堆的资料.而且面试这道题基本是必考题,二月份面试的时候,虽然知道这个过程发生了什么 ...
- 转载--从输入URL到页面展示到底发生了什么
最近我也在看http协议, tcp相关知识, 在吃饭时无意看到来一篇文章讲解“从输入URL到页面展示到底发生了什么”, 细细看完, 很值得回味, 所以转载, 以供日后在温习. (PS, 作者这篇文章发 ...
- 从输入url到页面展示到底发生了什么
阅读目录 1.输入地址 2.浏览器查找域名的 IP 地址 3.浏览器向 web 服务器发送一个 HTTP 请求 4.服务器的永久重定向响应 5.浏览器跟踪重定向地址 6.服务器处理请求 7.服务器返回 ...
- 从输入 URL 到页面展示到底发生了什么?
1.输入地址 当我们开始在浏览器中输入网址的时候,浏览器其实就已经在智能的匹配可能得 url 了,他会从历史记录,书签等地方,找到已经输入的字符串可能对应的 url,然后给出智能提示,让你可以补全ur ...
- 老生常谈-从输入url到页面展示到底发生了什么
来自:咸鱼老弟 - 博客园 链接:http://www.cnblogs.com/xianyulaodi/p/6547807.html
- 从输入url到页面返回到底发生了什么
1. 前言 Google应该是开发者平日里用得最多的网站之一,今早笔者在浏览器地址栏里键入www.google.com的时候,突然想了解下这背后的网络通信过程究竟是怎么样的.毕竟自己也算是一名Web开 ...
- 从输入 URL 到页面展示,到底发生了什么
从输入 URL 到页面展示,到底发生了什么 1.输入URL 当我们开始在浏览器中输入网址的时候,浏览器其实就已经在智能的匹配可能得 url 了,他会从历史记录,书签等地方,找到已经输入的字符串可能对应 ...
- 《浏览器工作原理与实践》<04>从输入URL到页面展示,这中间发生了什么?
“在浏览器里,从输入 URL 到页面展示,这中间发生了什么? ”这是一道经典的面试题,能比较全面地考察应聘者知识的掌握程度,其中涉及到了网络.操作系统.Web 等一系列的知识. 在面试应聘者时也必问这 ...
随机推荐
- 平衡二叉树(AVL)插入结点后的再平衡思路
理解平衡二叉树 在解决平衡二叉树动平衡问题,我们先来明确什么是平衡二叉树: 平衡二叉树是二叉搜索树的一种特殊情况,所以在二叉搜索树的基础上加上了如下定义: 平衡因子:我们将二叉树中各个结点的左右子树的 ...
- 鸿蒙极速入门(三)-TypeScript语言简介
ArkTS是HarmonyOS优选的主力应用开发语言.ArkTS围绕应用开发在TypeScript(简称TS)生态基础上做了进一步扩展,继承了TS的所有特性,是TS的超集.因此,在学习ArkTS语言之 ...
- @synchronized(self) 加锁引起的Crash
一.最近米家App进入前台的时候上报上来一个Crash {"app_name":"MiHome","timestamp":"201 ...
- Python依据遥感影像的分幅筛选出对应的栅格文件
本文介绍基于Python语言,结合已知研究区域中所覆盖的全部遥感影像的分幅条带号,从大量的遥感影像文件中筛选落在这一研究区域中的遥感影像文件的方法. 首先,先来明确一下本文所需实现的需求.现已 ...
- JS注释 JS变量
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8 ...
- [SWPUCTF 2021 新生赛]gift_F12
首先我们打开环境会发现花里胡哨的,而题目中有提示:F12,所以我们直接F12查看源码 然后ctrl+f信息检索flag.直接找到flag提交 但要注意提交格式为NSSCTF{}
- 键盘中断,键盘驱动,基于Linux0.11
键盘,咱们做计算机这一行的自然不必多说,天天与它打交道.但熟归熟,清楚键盘背后的原理吗?键盘上都标有各键的名称,表明了各键所代表的意义,但是计算机是如何知道的?组合键是怎样实现的?按下一个代表字符的键 ...
- windows 右键菜单编辑/删除
windows 右键菜单编辑/删除.WIN7,WIN8,WIN10,WIN11. 在 https://www.sordum.org/7615/easy-context-menu-v1-6/ 页面底部下 ...
- SRE 必备利器:域名 DNS 探测排障工具
问题背景 访问某个 HTTP 域名接口,偶发性超时,原因可能多种多样,比如 DNS 解析问题.网络质量问题.对端服务负载问题等,在客户端没有良好埋点的情况下,排查起来比较费劲,只能挨个方向尝试,这里送 ...
- LLM应用实战:当图谱问答(KBQA)集成大模型(三)
1. 背景 最近比较忙(也有点茫),本qiang~想切入多模态大模型领域,所以一直在潜心研读中... 本次的更新内容主要是响应图谱问答集成LLM项目中反馈问题的优化总结,对KBQA集成LLM不熟悉的客 ...