从输入 URL 到页面加载完成的过程中都发生了什么?
- 键盘或触屏输入URL并回车确认
- URL解析/DNS解析查找域名IP地址
- 网络连接发起HTTP请求
- HTTP报文传输过程
- 服务器接收数据
- 服务器响应请求/MVC
- 服务器返回数据
- 客户端接收数据
- 浏览器加载/渲染页面
- 打印绘制输出
参考:
浏览器工作原理:从 URL 输入到页面展现到底发生了什么?
从输入 URL 到页面加载完成的过程中都发生了什么事情?
浏览器工作原理
浏览器的主要组件为
- 用户界面 - 包括地址栏、前进/后退按钮、书签菜单等。除了浏览器主窗口显示的您请求的页面外,其他显示的各个部分都属于用户界面。
- 浏览器引擎 - 在用户界面和呈现引擎之间传送指令。
- 呈现引擎 - 负责显示请求的内容。如果请求的内容是 HTML,它就负责解析 HTML 和 CSS 内容,并将解析后的内容显示在屏幕上。
- 网络 - 用于网络调用,比如 HTTP 请求。其接口与平台无关,并为所有平台提供底层实现。
- 用户界面后端 - 用于绘制基本的窗口小部件,比如组合框和窗口。其公开了与平台无关的通用接口,而在底层使用操作系统的用户界面方法。
- JavaScript 解释器。用于解析和执行 JavaScript 代码。
- 数据存储。这是持久层。浏览器需要在硬盘上保存各种数据,例如 Cookie。新的 HTML 规范 (HTML5) 定义了“网络数据库”,这是一个完整(但是轻便)的浏览器内数据库。
参考:
浏览器的工作原理:新式网络浏览器幕后揭秘
How Browsers Work: Behind the scenes of modern web browsers
URL 和 URI URN的区别
URI: 唯一标识,包括URL, URN
URL: 访问位置
URN: 唯一名称
参考:
The Difference Between URLs and URIs