big*_*ind 3 html url user-agent
假设浏览器遇到如下链接:
<a href='stackoverflowhome.html'>home</a>
Run Code Online (Sandbox Code Playgroud)
这显然是当前目录中html文件的相对URL,但浏览器如何知道.html是文件扩展名,而不是TLD(顶级域名)?它是否包含常见文件扩展名列表或TLD列表?如果是这样,只要新的文件格式变得普遍使用,或者接受的TLD列表发生变化(例如使用品牌tlds),它是否会手动更新?
这是因为这就是RFC 3986指定应该解析URI的方式.如果URI没有scheme(一组字符后跟一个冒号 - 例如http:或者gopher:),那么它必须被视为相对URI.引用RFC:
URI引用是URI或相对引用.如果URI-reference的前缀与其冒号分隔符后面的方案的语法不匹配,则URI-reference是相对引用.
用户代理可以最好地猜测用户的意思(参见第4.5节),特别是在上下文不明确的情况下(例如浏览器中的URL条),但RFC建议不要使用URI来实现很长一段时间,因为用户代理的最佳猜测会随着时间的推移而发生变化,从而导致URI无法解析为相同的资源,具体取决于访问它们的时间或访问它们的用户代理.