1.DNS 解析:
。当您输入一个URL(如 https://www.example.com )时,首先需要将域名转换成服务器的IP地址。这是通过DNS(Domain Name System,域名系统)查询完成的。浏览器会联系DNS服务器以获取与域名对应的IP地址。
2.建立TCP连接:
一旦获取到了服务器的IP地址,浏览器就会尝试与该IP地址建立TCP连接。这通常涉及三次握手过程,确保双方能够可靠地交换数据。
3.发送HTTP请求:
。TCP连接建立后,浏览器会通过这个连接向Web服务器发送一个HTTP请求。请求中包含了请求的方法(如GET)、请求的资源路径、协议版本以及一些请求头信息(如接受的内容类型、语言偏好等)。
4.服务器处理请求并返回响应:
。Web服务器接收到请求后,会进行相应的处理(如查询数据库、执行脚本等),然后生成一个HTTP响应,包含状态码、响应头以及响应体(通常是HTML文档)。
5.解析HTML内容:。浏览器接收到服务器的响应后,开始解析HTML文档,构建DOM树(Document Object
Model,文档对象模型)。这是一个表示文档结构的树形数据结构。
6.加载外部资源:在解析HTML的过程中,如果遇到外部资源(如CSS文件、JavaScript文件、图片等),浏览0器会发起额外的HTTP请求来加载这些资源。
7.渲染页面:
。当DOM树构建完成后,浏览器会结合CSS规则生成CSSOM(CSS Object Model),然后将DOM树和CSSOM合并生成渲染树(Render Tree)。渲染树包含了所有可见的节点及其样式信息。
。浏览器根据渲染树计算每个节点的几何布局(即确定每个元素的位置和大小),这一过程称为“布局"或“重排”。
。最后,浏览器将渲染树绘制到屏幕上,这个过程称为“绘制”。
8.执行JavaScript:
。如果页面中包含JavaScript代码,浏览器会在适当的时候(通常是在文档解析过程中或解析完成后)执行这些脚本。JavaScript可以修改DOM、CSSOM,甚至发起新的网络请求,因此可能会触发页面的重新渲染。
9.用户交互:
。页面加载完成后,用户可以与页面进行交互(如点击链接、填写表单等)。这些操作可能会触发JavaScript事件处理器,进一步改变页面的状态或触发新的网络请求