浏览器加载资源的一般流程是这样的:
- 解析URL:用户输入或者程序生成一个URL。
- 查找缓存:浏览器首先会查找本地缓存中是否有该资源的副本,以便快速的响应用户的请求。
- DNS查询:如果在缓存中没有找到该资源,浏览器会向本地DNS服务器发送一个DNS查询请求,以获取资源的真实IP地址。
- 建立TCP连接:浏览器使用HTTP协议的TCP连接方式与web服务器建立连接,并发送http报文。
- 发送http请求:浏览器发送http请求,并等待响应。
- 接收响应:web服务器会根据HTTP请求返回数据,包括响应状态码,响应头信息以及响应体数据。
- HTML解析:浏览器接收到HTML响应后,会从上至下解析HTML文件,生成DOM tree。
- CSS解析:浏览器对于HTML文件中的样式信息进行解析,生成CSSOM tree。
- 构建渲染树:根据DOM Tree和CSSOM Tree,浏览器构建渲染树,渲染树是浏览器完成网页可视化的关键步骤,也是最慢的步骤。
- 布局绘制:浏览器对渲染树进行布局并绘制页面。
- 完成加载:浏览器将渲染完成的页面展示给用户。
以上是浏览器加载资源的一般流程,不同的浏览器及其版本在细节方面可能会有所不同。