全球主机交流论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

CeraNetworks网络延迟测速工具IP归属甄别会员请立即修改密码
查看: 6234|回复: 2
打印 上一主题 下一主题

网站的图片JS等静态资源使用独立域名有什么优势?

[复制链接]
跳转到指定楼层
1#
发表于 2022-3-14 23:16:55 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
在大型网站中,我们发现页面资源经常使用不同的域名进行引用,例如126邮箱的部分js、css、图片存放于http://mimg.1.net/域名下,京东的部分静态图片存放在http://img11.1.com域名下,那这样做究竟有什么好处呢,和性能又有什么关系呢,下面进行具体分析。
一、浏览器并发请求数的限制

  我们进行网站页面访问时的客户端是浏览器,浏览器的很多机制对网站的访问速度有很大的影响(例如浏览器对静态资源的缓存机制),此外浏览器为提升页面显示效率,支持并发获取资源,但是同一时间针对同一域名下的请求有一定数量限制,超过限制数目的请求会被阻塞。大多数浏览器的并发数量都控制在6以内。有些资源的请求时间很长,因而会阻塞其他资源的请求。因此,对于一些静态资源,如果放到不同的域名下面就能实现与其他资源的并发请求。
  此外,浏览器对并发请求的数目限制是针对域名的,即针对同一域名(包括二级域名)在同一时间支持的并发请求数量的限制。如果请求数目超出限制,则会阻塞。因此,网站中对一些静态资源,使用不同的一级域名,可以提升浏览器并行请求的数目,加速界面资源的获取速度。
  因而后来衍生了domain dash来加大并发数,但是过多的域名会使DNS解析负担加重,因此一般控制在2-4个。
  对于图片资源的加载,利用css sprites技术,结合background的定位在同一张图片中加载多个图片,这也是减少并发数量的一种常用方法。
二、网络请求时cookie传输
  当静态资源与主服务在同一域名下(根据业务需要,主服务请求时需要传递cookie信息),每次静态资源的请求,都会发送同域名下的cookie。而对于静态资源,服务器无需对cookie进行任何处理,它们只是在毫无意义的消耗带宽。
  假设网站cookie信息有1 KB、网站首页共150个资源时,用户在请求过程中需要发送150 KB的cookie信息,在512 Kbps的常见上行带宽下,需要长达3秒左右才能全部发送完毕。很多情况下cookie的path是在整个一级域名下可用的,如果你把静态资源设置成二级域名,那么它也避免不了cookie。例如如果给 http://126.com 设置了cookie,那么会感染所有子域名, 请求 http://www.126.com/logo.gif或者http://image.126.com/logo.gif 时便会带上讨厌的cookie。
  所以对于静态资源使用单独的域名,并设置为无cookie,以减少请求大小,提高网页性能。
三、方便分流或缓存
  我们知道,当面对大并发访问时,在服务端会有相应的缓存机制,例如我们会在CDN中缓存一些静态资源,以便用户可以通过就近的网络节点获取资源。例如新浪WB在加载资源时,很多就放在了阿里的CDN上。
  此外,独立的域名也方便我们在代理服务层做动静分离,以便提升静态请求的处理速度。
  CDN缓存:CDN是构建在网络之上的内容分发网络,依靠部署在各地的边缘服务器,通过中心平台的负载均衡、内容发布、调度等功能模块,是用户就近获取所需内容,降低网络拥塞,提高用户访问响应速度和命中率。CDN的关键技术主要是内容存储和分布技术。简单来说,CDN主要用来使用户就近获取资源。
2#
发表于 2022-5-7 22:40:00 | 只看该作者
简单一句话。 就是分开了 请求数少很多。站点加载要快点。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|全球主机交流论坛

GMT+8, 2024-3-29 15:40 , Processed in 0.065762 second(s), 6 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表