web组件分离
By admin
- One minute read - 28 words这里Web组件指Web服务器提供的所有基于URL访问的资源,比如动态内容,图片,Javascript脚本,CSS样式表
我们可以从以下几个方面来看这些Web组件的差异
文件大小
文件数量
内容更新频率
预计并发用户数
是否需要脚本解释器
是否涉及大量CPU计算
是否访问数据库
访问数据库的操作主要是读还是写
是否包含远程调用(RPC)
值得一提的是,即便是同一Web组件,显然也存在特点的差异,比如负责呈现内容的动态网页和负责用户注册的动态网页,可以
视为不用的用户组件,再比如由用户上传的大尺寸照片和站点网页的小尺寸修饰图片也存在以上方面的差异,也可以将它们区分对待。
web组件分离的目的是便于采用针对性的方法,使得各种Web组件能够充分利用服务器资源。如何实现web组件分离呢?
最常见的做法是拥有不同的域名:
如:img.run21.cn
存放网页中的图片,指向服务器A
upload.run21.cn
存放用户上传的照片,指向服务器B
static.run21.cn
存放静态化的网页,指向服务器C
js.run21.cn
存放javascript脚本文件,指向服务器D
当我们用不同的域名对Web组件进行分离后,另一个好处是提高了浏览器在下载Web组件时的并发数。
当浏览器打开一个网页的时候,浏览器首先下载网页本身,也就是HTML,然后分析这些HTML标记,同时逐步下载其中包含的
一系列组件。然而浏览器下载组件的过程受到最大并发数的限制,也就是浏览器同一时刻最多只可以下载一定数量的组件。
那为什么Web组件分离后会提高浏览器的并发数呢?其实,浏览器的最大并发数限制有一个前提,那就是对同一个域名下
的组件才有效,也就是说浏览器会为每个域名维护不同的下载队列,这样浏览器的下载并发数将增多,整体下载速度也随之提高。