3

假设浏览器遇到这样的链接:

<a href='stackoverflowhome.html'>home</a>

这显然是当前目录中 html 文件的相对 url,但是浏览器如何知道 .html 是文件扩展名,而不是 TLD(顶级域)?它是否有常见文件扩展名列表或 TLD 列表?如果是这样,是否在新文件格式变得常用时手动更新,或者当接受的 TLD 列表发生变化时(例如品牌 TLD)?

4

3 回答 3

5

这是因为这就是RFC 3986指定应该解析 URI 的方式。如果 URI 没有scheme(一组字符后跟冒号 - 例如http:gopher:),则必须将其视为相对 URI。引用 RFC:

URI 引用是 URI 或相对引用。如果 URI 引用的前缀与后跟冒号分隔符的方案的语法不匹配,则 URI 引用是相对引用。

允许用户代理对用户的意思做出最好的猜测(参见第 4.5 节),尤其是在上下文不明确的情况下(例如浏览器中的 URL 栏),但 RFC 建议不要在 URI 存在的地方使用它很长一段时间,因为用户代理的最佳猜测会随着时间的推移而改变,从而导致 URI 不会根据访问时间或访问它们的用户代理解析为相同的资源。

于 2012-09-04T13:12:16.793 回答
0

相对 URL 绝不是域名。

如果 URL 具有协议,则仅将其解析为包含域名。(或者是协议相关的)。

于 2012-09-04T13:09:10.833 回答
0

URL 不以协议说明符开头 - nohttp://https://,因此被解释为相对 URL。

于 2012-09-04T13:10:24.170 回答