假设浏览器遇到如下链接:
<a href='stackoverflowhome.html'>home</a>
这显然是当前目录中html文件的相对URL,但浏览器如何知道.html是文件扩展名,而不是TLD(顶级域名)?它是否包含常见文件扩展名列表或TLD列表?如果是这样,只要新的文件格式变得普遍使用,或者接受的TLD列表发生变化,例如使用品牌tlds,它是否会手动更新?
答案 0 :(得分:5)
这是因为RFC 3986指定了应该解析URI的方式。如果URI没有scheme
(一组字符后跟冒号 - 例如http:
或gopher:
),则必须将其视为相对URI。引用RFC:
URI-reference是URI或相对引用。如果 URI-reference的前缀与后面的方案的语法不匹配 通过冒号分隔符,URI引用是一个亲戚 参考
允许用户代理最好地猜测用户的意思(参见section 4.5),尤其是在上下文不明确的情况下(例如浏览器中的URL栏),但RFC建议不要URI将会存在很长一段时间,因为用户代理的最佳猜测会随着时间的推移而发生变化,从而导致URI无法解析为同一资源,具体取决于访问它们的时间或访问它们的用户代理
答案 1 :(得分:0)
相对URL绝不是域名。
如果URL具有协议,则URL仅被解析为包含域名。 (或者是协议相对的)。
答案 2 :(得分:0)
网址不以协议说明符开头 - 没有http://
或https://
,因此被解释为相对网址。