确定链接是指向本地主机还是外部域上的文件

时间:2013-11-07 18:00:13

标签: web

从那以后,这对我来说一直是一个亟待解决的问题,我认为在论坛上讨论这个问题很有意思。正如大多数人所知,在网站中我们包括锚链接,样式表,脚本文件(javascript)和图像。 对于锚链接,我们使用<a href="..." />形式 对于样式表,我们可以使用<link rel="stylesheet" type="text/css" href="..." />形式 对于javascript,我们可能会使用<script src="..." />
对于图片,我们使用<img src="..." />

所以,问题是:

我们如何知道链接指针中的内容(即替换每个示例中的......)是本地文件还是外部实体?

为了说清楚,我可以说我创建了一个名为“ashish.com”的本地文件。现在,我的目的是创建一个链接,以便任何点击它的人都可以下载它。所以,我的代码就是:

<a href="ashish.com">Download It</a>

但这使得它含糊不清。我也可以指一个名为“ashish.com”的网站 那么,计算机如何神奇地知道我的意思呢?或者甚至知道这个?在这种情况下会发生什么?

1 个答案:

答案 0 :(得分:0)

绝对URI以URI方案名称为前缀。例如,http://example.com/hello.jpg的URI方案名称为http,而ftp://example.com/world.jpg的URI方案名称为ftp

相对URI没有前缀。诸如example.com/hello.jpg之类的URI将被限定为相对URI。

这意味着,当您在页面上拥有:

<a href="example.com">Magic</a>

绝对位置取决于实际页面的位置。如果您在本地查看页面,其URI将类似于:

file:///C:/Sample/index.html

所以链接将指向:

file:///C:/Sample/example.com

如果页面托管在网站上并通过浏览器查看,则其位置可能类似于:

https://sample.example.com/index.html

所以链接指向:

https://sample.example.com/example.com

备注地址栏中的URI方案:

在访问网站时,很容易对大多数浏览器的UI行为产生混淆。实际上,在浏览器中,当您在地址栏中输入google.com时,浏览器会打开Goog​​le网站。在大多数情况下,您甚至不会在地址栏中看到http://。此行为专门为用户完成,以便他们每次想要访问网站时都避免键入URI方案。在某些网站(例如Google)上自动重定向到https://会让用户更轻松。

关于HTTP / HTTPS的评论:

有一种特殊情况,绝对链接不包含URI方案。链接如:

//static.example.com/logo.png

将从浏览器的主要部分获得特殊处理:页面的实际URI方案将被重用。

这特别有用,例如,当使用HTTP和HTTPS访问同一网站时。在第一种情况下,浏览器将访问:

http://static.example.com/logo.png

而在第二个中,它将切换到CDN的HTTPS版本:

https://static.example.com/logo.png