一个页面从输入url到页面加载显示完成,这个过程都发生了什么?
一个页面从输入url到页面加载显示完成的过程,大致分为以下几步:
浏览器地址栏输入url;
浏览器会先查看浏览器缓存–系统缓存–路由缓存,如有存在缓存,就直接显示。如果没有,接着第三步
DNS解析、查找该域名对应的IP地址、重定向(301)、发出第二个GET请求;
进行HTTP协议会话;
客户端发送报头(请求报头);
服务器回馈报头(响应报头);
html文档开始下载;
文档树建立,根据标记请求所需指定MIME类型的文件;
文件显示。
浏览器这边做的工作大致分为以下几步:
加载:根据请求的URL进行域名解析,向服务器发起请求,接收文件(HTML, JS, CSS, Image等)。
解析:对加载到的资源(HTML, JS, CSS, Image等)进行语法解析,建立响应的内部数据结构(比如HTML的DOM树,JS的(对象)属性表,CSS的样式规则等)。