1. 解析域名
首先浏览器需要知道网站的ip地址,它向dns服务器发送一个包含域名的请求。然后dns服务器返回对应的ip地址。为了减少dns服务器的负载,并且提高性能,dns查找机制会被浏览器、设备、设备与服务器之间的路由和代理服务器缓存,这也是为什么更改dns记录可能需要几天才生效的原因。
2. 发起请求
浏览器向由dns查找ip的地址的主机发起TCP连接,然后发送请求,请求中包含网址、浏览器信息、浏览器能接受的数据类型(编码语言)、以及所有相关的cookies,包括域和路径的cookies。
3. 下载相应
浏览器开始下载相应,随着相应流的到达,浏览器解析HTML并识别出更多的资源,然后浏览器开始获取这些资源。
4.
渲染页面
最后浏览器会尽快开始渲染页面,如果页面中外链了css或者脚本文件,浏览器会等到这些文件加载和解析(javascript代码还需要执行)完,再渲染页面。
注:某些现代浏览器已经通过复杂的机制对渲染页面的时机做了优化,不一定需要等待外链的css或者脚本文件加载完才渲染。
页面加载缓慢是什么原因?
1. http连接数
2. 总的字节数
3. 等待时的渲染阻塞
4. 延迟
5. 缓存能力差