1 传统访问页面方式
(1) 用户提交域名
(2) 浏览器对域名解析,找不到对于的IP;再到操作系统,还是没有;再到路由器,
再没有就到DNS服务器找
(3) 最后找到对应的IP地址,向域名的服务主机发出数据访问请求
(4) 服务器就返回页面的内容给客户端
但是在这里的问题就是如果访问量很大的网站的话,比如新浪微博、facebook等大型网站,这样子的服务器肯定会被挤爆了,那怎么办呢?缓冲或者说是存储这种理念在冯·诺依曼提出之后就特别流行,确实,CDN也是采用缓存的理念
2 CDN缓存后的网站的访问过程
(1) 用户向浏览器提供要访问的域名;
(2) 浏览器调用域名解析库对域名进行解析得到CNAME,再解析CNAME域名获取IP地址,
在此过程中,使用的全局负载均衡DNS解析,如根据地理位置信息解析对应的IP地址,
使得用户能就近访问;
(3) 这次解析到只是CDN服务器的IP地址,浏览器获取这个IP地址就向CDN缓存发送请求;
(4) CDN缓存服务器根据浏览器提供的要访问的域名,通过Cache内部专用DNS解析得到
此域名的实际 IP地址,再由缓存服务器向此实际IP地址提交访问请求,缓存服务器就好
像是中间人那样子;
(5) CDN缓存服务器获取内容后,一方面在本地存储,以便客户端下次访问;另外一方面
就发送给客户端;
(6) 客户端就把从CDN缓存服务器返回的内容显示,下次访问就直接访问CDN缓存服务器。
其实从上面就好像我们的计算机要访问数据那样子,因为CPU的运算能力很快,快到内存根本跟不上。如果CPU每次运算一下就要去内存获取数据的话,那么计算机的效率太低了。这样子的话,我们设置缓存,能够缓冲两者速度不匹配而导致的效率问题。所以CPU要访问数据,先到缓存中找,找不到就去内存中找,然后在缓存中添加对应的数据,下次要访问改数据就直接到缓存中找就行了。