url到加载渲染全过程描述
从输入URL到加载渲染全过程主要包括以下步骤:
1. URL解析:浏览器会解析输入的字符串,判断是URL还是搜索关键字,如果是URL就开始编码。编码过程中会使用encodeURI()函数或者encodeURIComponent()函数来编码URL。
2. DNS解析:浏览器会根据IP地址向服务器发起http请求。
3. 建立TCP链接:浏览器会先去查看强缓存(Expires和cache-control)判断是否过期,如果强缓存生效,直接从缓存中读取资源;若不生效则进行协商缓存(Last-Modified / If-Modified-Since和Etag/If-None-Match),协商缓存由服务器决定是否使用缓存。
4. 客户端发送请求:浏览器会根据IP地址向服务器发起http请求。
5. 服务器处理和响应请求:服务器处理http请求,并返回给浏览器。
6. 浏览器解析并渲染响应内容:HTML生成DOMTree,CSS生成CSSOM,将DOMTree和CSSOM整合成RenderTree,RenderTree渲染页面。遇到Script暂停渲染,优先加载执行JS。
7. TCP四次挥手断开连接:当页面渲染完成后,浏览器会断开与服务器的连接。
需要注意的是,在此过程中,浏览器会进行缓存检查,先查看强缓存,若不生效则进行协商缓存,然后根据缓存标识决定是否重新返回资源。