相对链接比站点链接快得多吗?

时间:2012-02-17 08:11:52

标签: php html .htaccess mod-rewrite

在我的网站上,我倾向于使用网站链接而不是相对链接,如下所示:

我用:

<link rel="stylesheet" type="text/css" href="http://www.example.com/_css/_all/stylesheet-global-styles.css" />

替代(相对):

<link rel="stylesheet" type="text/css" href="/_css/_all/stylesheet-global-styles.css" />

我使用网站链接的原因是因为我使用了很多虚荣网址,例如:

  

example.com/test =&gt; example.com/test.php

     

example.com/test/1 =&gt; example.com/test.php?id=1

由于第二个示例中的多个'/',我的页面认为它们位于网站的子目录中,因此除非我输入'../',否则“相对”链接不起作用。我不能这样做,因为这意味着根据查询字符串是否存在以及有多少'/'来存储目录。因此,我被迫使用网站链接来包含我所需的内容。

我知道每个请求因此必须执行DNS查找,这会降低它的速度,但我的问题是,如果我链接,比如5个样式表和脚本会慢多少?

5 个答案:

答案 0 :(得分:7)

  

相对链接是否比网站链接快得多?

不,因为他们是同一个人。相对链接仅仅是浏览器提供的网站管理员便利。它们最终也被解析为绝对链接:发送到服务器的每个请求始终包含完整的主机名和路径。

DNS缓存是高速缓存的,因此如果系统配置正确,则不会有多次查找。

答案 1 :(得分:2)

它并没有真正有所作为。在幕后,浏览器无论如何都将链接转换为完整的URL。 DNS查询成本很低,因为DNS查找是缓存的。

恕我直言,相对链接更容易维护。您应该使用您认为最方便的技术。性能不是问题。

如果您想提高性能,最好将样式表合并到一个文件中并缩小它。脚本文件也是如此。

答案 2 :(得分:2)

点击浏览器中的链接会发生什么情况? 浏览器启动HTTP请求。

它看起来怎么样?
如果您在http://www.example.com/path1/page1.html

并点击链接
../path2/page2.html
/path2/page2.html
http://www.example.com/path2/page2.html
请求始终相同

GET /path2/page2.html HTTP/1.1  
host: www.example.com

因此与请求无差异

您可以随意整理链接。

答案 3 :(得分:0)

在参考之前使用/时,您的路径从您网站的根目录开始绝对 - 与使用../相反,就像您所说的亲戚一样。

答案 4 :(得分:-2)

你为什么不这样做

//yourapp.com/assets/css/style.css
//yourapp.com/assets/js/jq.js

//yourapp.com/cp/register
//yourapp.com/cp/update_account
  

//字面意思是指SSL或非SSL,它将始终解析。没有   速度差异。

reference on double slash domain //site.com and for ssl non ssl