(转)一个网页打开的全过程
1、概要 从用户在浏览器输入域名开始,到web页面加载完毕,这是一个说复杂不复杂,说简单不简单的过程,下文暂且把这个过程称作网页加载过程。下面我将依靠自己的经验,总结一下整个过程。如有错漏,欢迎指正。 阅读本文需要读者已有一定的计算机知识,了解TCP、DNS等。 2、分析 众所周知,打开一个网页的过程中,浏览器会因页面上的css/js/image等静态资源会多次发起连接请求,所以我们暂且把这个网页加载过程分成两部分: html(jsp/php/aspx) 页面加载(假设存在简单的Nginx负载均衡) css/js/image等 网页静态资源加载(假设使用CDN) 先上一张图,直观明了地让大家了解下基本流程,然后我们再逐一分析。 2.1.1 DNS解析 什么是DNS解析?当用户输入一个网址并按下回车键的时候,浏览器得到了一个域名。而在实际通信过程中,我们需要的是一个IP地址。因此我们需要先把域名转换成相应的IP地址,这个过程称作DNS解析。 或许很多人不知道,浏览器自身也带有一层DNS缓存。Chrome 缓存1000条DNS解析结果,缓存时间大概在一分钟左右。 (Chrome浏览器通过输入:chrome://net-internals/#dns 打开DNS缓存页面) 2) 如果浏览器缓存中没有找到需要的记录或记录已经过期