pet*_*ter 5 firefox uri webkit http rfc3986
当 URLhttp:///example.org
在 Firefox 或基于 webkit 的浏览器中打开时,它会打开http://example.org
. 我想知道这是否是一种有效的行为,即是否应该删除额外的斜杠并将其example.org
视为权限组件。我阅读了规范 ( RFC 3986 ),我的印象是这样的 URI 的权限组件应该被认为是空的。其他一些 HTTP 客户端(例如 curl 或 links2)不会解析 URL。
这是浏览器中的错误,还是符合 RFC 的有效行为?编辑:或预期的功能,以使浏览器更加用户友好?
“http”协议的规范要求 URI 中包含主机名。请参阅http://www.w3.org/Protocols/rfc2616/rfc2616-sec3.html#sec3.2.2。因此该字符串http:///foo
不是有效的 http URI,浏览器面临着如何处理无效 URI 字符串的问题。
Gecko (Firefox) 所做的是它的 URI 解析器实际上具有依赖于方案的行为,它会根据 URI 方案假设您的意思并进行某些修正。请参阅http://mxr.mozilla.org/mozilla-central/source/netwerk/base/public/nsIStandardURL.idl?rev=f4157e8c4107&mark=20-23,28-31,36-39#20 上的评论。“http”URI 是使用 URLTYPE_AUTHORITY 标志创建的,这会导致您看到的行为(根据 nsIStandardURL.idl 的第 31 行)。
请注意,目前在http://url.spec.whatwg.org/上标准化 URI 应如何在网页和 Web 浏览器中解析的尝试,并在http://url.spec.whatwg 上有一个方案白名单。 org/#relative-scheme具有这样的行为。如果您逐步执行该白名单中方案的解析算法,一旦您看到“:”,您就会在http://url.spec.whatwg.org/#authority-first-slash-state进入状态,该状态基本上将 0 或更多的斜杠都等价于“//”,并继续将斜杠后面的内容解析为 URL 的“权威”部分。
归档时间: |
|
查看次数: |
2042 次 |
最近记录: |