性能:绝对与相对URL

ma1*_*w28 8 performance http relative-path absolute-path hotlinking

什么更快?热链接(内联链接)绝对URI或自己托管资源并使用相对URI

在他关于如何在Internet Explorer中设置HTML5元素样式的教程中,Remy Sharp指出热链接会导致"额外的HTTP [GET]请求".我同意你是否将热链接与将脚本复制和粘贴(嵌入)到HTML中进行比较.但是,如果你比较热链接到本地​​托管脚本和通过相对路径链接,那么我认为热链接实际上(从未如此轻微)更快,因为浏览器不必解析绝对来自相对路径的URL.但是,在这两种情况下,都会执行额外的HTTP GET请求,对吗?

Sri*_*nan 11

正确的答案是 - 这取决于.

Hotlinking可能很慢,因为 -

  1. 需要额外的DNS查找
  2. 无法重用现有的TCP/IP套接字连接

在您的服务器上托管可能会很慢,因为 -

  1. 浏览器每个主机只允许n个并发请求.再向同一主机发出一个请求有可能引入排队,这可能很慢.数字'n'是浏览器特定的,介于2和6之间.请参阅browserscope> network>每个主机名的连接.

如果你认为两个服务器在各方面都是相同的,我会说服务器上的托管速度会更快.在每台主机的连接数为6的新浏览器中尤其如此.

但遗憾的是,事情从未如此简单.我建议只在以下情况下使用热链接 -

  1. 您的域中有太多资源(images/js)
  2. 另一台服务器是CDN,资源非常流行,因此浏览器的缓存中存在很大的机会.在谷歌的服务器上思考JQuery.

对于所有其他用例,最好在自己的服务器上托管.

  • 虽然"你的服务器"可能是`res1.domain`,`res2.domain`,也就是说,在多个内部域中按类型(或加载)分开(这个woul与隐式负载平衡不同,它与"看起来不同"到浏览器).一旦缓存,DNS问题应该是不存在的. (2认同)