我注意到在网络上,某些网站的子域名专门用于子域名(如i.domain.com)上的图像或信息。我想知道这有什么好处?这种“方法”有名称吗?我在哪里可以获得更多相关信息?感谢。
答案 0 :(得分:5)
并行化图像/脚本下载。
有些浏览器一次只有2个并发连接可以打开给定的域。如果要下载20个图像/脚本,则每次只能获得2个x10。如果您使用不同的域(子域),则可以增加并发下载量。
作为示例,StackOverflow将图像放在i.stackoverflow.com下以帮助提高速度。
修改强>
正如理查德(在评论中)指出的那样,HTTP规范强烈建议2并发连接限制。
答案 1 :(得分:3)
'i。'经常用于图像。还有一点,因为在'i。'下面的图像允许来自主域的更多请求,而不会干扰图像。
特别是,每次包含外部< script>(*)时,浏览器都必须阻止在脚本下呈现页面的其余部分,直到获取并执行脚本文件为止。如果脚本元素上方有二十个图像,则这些图像将全部排队,并且可能在脚本元素之前被提取,导致呈现页面时出现大的延迟。
对于像脚本这样的重要资源,使用不同的主机名(即使在同一个域中),图像请求不会阻塞管道以获取更重要的样式表和脚本资源;相反,它们将并行发生。
另外,当然,通过为图像和其他大型资源(如视频文件)使用不同的主机名,您可以在将来将它们放到第二台服务器上。
(*:除非您使用< script defer>,但很少使用且不全球支持。)
答案 2 :(得分:3)
除了提供更多的浏览器连接时,静态内容(图像,CSS,Javascript)通常会委托给CDN,这需要一个新的子域。
答案 3 :(得分:2)
答案 4 :(得分:1)
您可以use a cookie-free subdomain获取静态内容(图片,脚本,样式表等)。
静态内容不需要cookie,因此发送/接收它们只是浪费带宽。
答案 5 :(得分:1)
它还可以帮助管理对另一个子域内容的访问,因为您可以放心地假设来自i.yoursite.com的所有内容只能通过www.yoursite.com链接
例如,使用apache可以将单个.htaccess与一些简单的规则放在一起,以定义子域根目录中图像的访问权限。
答案 6 :(得分:1)
对某些资源使用单独的子域有几个原因:
并行下载 HTTP规范将the number of simultaneous connections限制为两个连接:
使用持久连接的客户端应该限制它们维护到给定服务器的同时连接数。单用户客户端不应该与任何服务器或代理保持两个以上的连接。
但是虽然most browsers support more than two simultaneous connections per server,但是有一个限制,分发请求将允许更多的同时连接。
静态内容由于图片,样式表和脚本大多是静态内容,因此可以将它们交换到专门提供静态内容的其他服务器。因此,没有用于处理服务器端语言的不必要的加载模块阻碍服务器传送内容。
不含Cookie的子域 Cookie很有帮助,但可能会导致不必要的流量,因为它们与每个有效的请求一起发送。所以它是good practice to restrict cookies just to the www.
sub-domain。
有关更多有用的加速提示,请参阅Yahoo!’s Best Practices for Speeding Up Your Web Site。