网页打开过程
网页打开的一瞬间其实发生了很多的事情,他就像是化学反应,你也许只是将东西投放进容器,但是却会在一瞬间引起一场大爆炸,话不多说,先上一张图来表示:
DNS解析
- 域名转换成对应的IP地址,这个过程称作DNS解析。
浏览器自身缓存记录
- Chrome浏览器通过输入:chrome://net-internals/#dns 打开DNS缓存页面
- 1000条左右
- 时间1分钟
缓存中没有找到缓存记录或者记录已经过期
- ipconfig /displaydns 命令查看本机当前的缓存
- 通过hosts文件 ,\system32\drivers\etc\hosts
发起http请求
- 其本质是在建立起的TCP连接中,按照HTTP协议标准发送一个索要网页的请求。
负载均衡
- 当一台服务器无法支持大量的用户访问时,将用户分摊到两个或多个服务器上。
Nginx(负载均衡)
- 一款面向性能设计的HTTP服务器,相较于Apache、lighttpd具有占有内存少,稳定性高等优势。
浏览器渲染
- 浏览器根据页面内容,生成DOM Tree,根据CSS内容,生成CSS Rule Tree。调用js执行引擎执行js代码
- 根据DOM Tree和CSS Rule Tree生成Render Tree(呈现树)
- 根据Render Tree渲染网页
CDN
- 内容分发网络,是依靠部署在各地的边缘服务器,使用户就近获取所需内容,降低网络拥塞,提高用户访问响应速度。
网页静态资源加载
- 浏览器根据url加载该url下的图片内容。本质上是浏览器重新开始第一部分的流程,区别只是负责均衡服务器后端的服务器不再是应用服务器,而是提供静态资源的服务器。
以上就是我所理解的一个网页打开会放生的事情了,可能有些不太周到,望指正。