【发布时间】:2012-01-10 22:15:30
【问题描述】:
一位同事刚刚问我是否有任何理由引用具有相对路径的图像会阻碍网站速度。
虽然为了简洁起见,使用较少的相对路径字符是个好主意,但想知道使用绝对/完整路径是否还有其他减速/后果?我认为拥有完整路径可能涉及DNS查找。
如果有的话,其他后果是什么?
【问题讨论】:
标签: html performance networking path
一位同事刚刚问我是否有任何理由引用具有相对路径的图像会阻碍网站速度。
虽然为了简洁起见,使用较少的相对路径字符是个好主意,但想知道使用绝对/完整路径是否还有其他减速/后果?我认为拥有完整路径可能涉及DNS查找。
如果有的话,其他后果是什么?
【问题讨论】:
标签: html performance networking path
使用绝对路径强制 Web 服务器建立连接、发送和接收 HTTP 请求。如果使用相对,则连接已经建立,因此不必经过该逻辑(因此提高了页面加载速度)。您可能不会看到惊人的差异,但节省的每一点都是一件好事,对吧?
编辑:在进行快速测试后,差异可以忽略不计,我的答案似乎没有那么好。我用相同的图像创建了一个测试页面两次,一个是相对路径,一个是绝对路径:http://damonbauer.me/test/index.html。
测试一:HTML 代码中带有绝对路径的图像:(点击查看大图) http://damonbauer.me/test/images/results1.jpg
绝对路径图片的加载时间为 869 毫秒,而在 HTML 代码中排在第二位的相对路径图片的加载时间为 635 毫秒。
测试二:首先在 HTML 代码中带有相对路径的图像:(点击查看大图) http://damonbauer.me/test/images/results1.jpg
加载绝对路径图像需要 303 毫秒,而在 HTML 代码中首先列出的相对路径图像需要 315 毫秒。
我的意见?使用相对加载更快。即使在绝对路径图像之后列出,加载相对图像也只需要多 12 毫秒。第二次加载绝对路径图像时,加载时间增加了 234 毫秒。在这两种情况下,它们都很接近,在我看来,首先加载的内容更重要。无论哪种方式,我都会选择相对的,即使只是为了便携性。
【讨论】:
不,没有任何明显的区别,并且两者都有其用途。没有 DNS 查找客户端,是浏览器(或者可能是 Web 服务器?)将 url 更改为应有的内容。
根据需要使用它们,相对路径更具可移植性(无需做任何事情来使它们在您的开发或实时服务器中工作),而绝对路径将您带到特定位置(无论您是什么服务器)。
就我而言,我使用相对路径,除非我想使用特定地址。此外,当您从非安全切换到安全时,您需要指定 https 如此完整的路径(或在其他地方进行额外的重定向)
【讨论】:
远程绝对路径将通过 DNS,但它可以释放您的 Web 服务器以提供页面,而另一台服务器则负责提供图像的工作。这减轻了页面服务器上的网络负载并加快了速度。
本地绝对路径与本地相对路径相同,在第一页之后,它会被网络服务器缓存,之后就不再重要了。
【讨论】: