gpt4 book ai didi

http - 为什么 Firefox 和 webkit 将 http :///example. org(带有三重斜杠)视为有效 URL?

转载 作者:可可西里 更新时间:2023-11-01 16:09:57 25 4
gpt4 key购买 nike

当在 Firefox 或基于 webkit 的浏览器中打开 URL http:///example.org 时,它会打开 http://example.org。我想知道这是否是一种有效的行为,即是否应该删除多余的斜杠并将 example.org 视为授权组件。我阅读了规范(RFC 3986),我的印象是这样一个 URI 的权限组件应该被认为是空的。其他一些 HTTP 客户端(例如 curl 或 links2)不会解析该 URL。

这是浏览器中的错误,还是符合 RFC 的有效行为? 编辑:或者一个预期的功能,以使浏览器更加用户友好?

最佳答案

“http”协议(protocol)的规范要求 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 行)。

请注意,目前正在尝试标准化如何在网页和网络浏览器中解析 URI,地址为 http://url.spec.whatwg.org/。并在 http://url.spec.whatwg.org/#relative-scheme 处有一个方案白名单有这样的行为。如果您逐步执行该白名单中方案的解析算法,一旦您看到“:”,您就会进入 http://url.spec.whatwg.org/#authority-first-slash-state 的状态。它基本上将 0 个或多个斜杠视为都等同于“//”,然后继续将斜杠后面的内容解析为 URL 的“权威”部分。

关于http - 为什么 Firefox 和 webkit 将 http :///example. org(带有三重斜杠)视为有效 URL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22772897/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com