最简版
- 浏览器根据请求的
url交给dns域名解析,找到真实的ip,向服务器发送请求; - 服务器交给后台处理完成后返回数据,浏览器接收文件(
html,js,css,图像等); - 浏览器对加载到的资源(
HTML,JS,CSS等)进行语法解析,建立对应的内部数据结构(如HTML的DOM); - 载入解析到的资源文件,渲染页面,完成
中级
- 从浏览器接收
url到开启网络请求线程(这一部分可以开展浏览器的机制以及进程和线程之间的关系) - 开启网络线程到发出一个完整的http请求(这一部分涉及到dns查询,tcp/ip请求,五层因特网协议栈等知识)
- 从服务器接收到请求对应后台接收到的请求(这一部分可能涉及到负载均衡,安全拦截以及后台内部的处理等等)
- 后台和前台的http交互(这一部分包含http头部,响应码,报文结构,cookie等知识,可以提下静态资源的cookie优化,以及编码解码,如gzip压缩等等)
- 单独拎出来的缓存问题,http的缓存(这部分包括http缓存头部,ETag,catch-control等)
- 浏览器接收到http数据包后的解析流程(解析html 词法分析后解析成dom树,解析css生成css规则树,合并成render树,然后layout,painting渲染,复合图层的合成,GPU的绘制,外链资源的处理,loaded和DOMCOntentLoaded等)
- css的可视化格式模型(元素的渲染规则,如包含快,控制框,BFC,IFC等概念)
- JS引擎解析过程(JS的解释阶段,预处理阶段,执行阶段生成执行上下文,vo,作用域链,回收机制等等)