Schemeless URL 在 HTTP 中有效吗?
Schemeless URL valid in HTTP?
像
这样的无方案网址
//blog.flowl.info/
在 HTTP (rfc?) 中有效,就像在普通 HTTP Requests 和 Responses 中一样,或者它们仅在 [=33] 中有效=] 属性和内容 ?
HTTP/1.1 302 - Moved
Location: //blog.flowl.info
GET //blog.flowl.info
更新:
我现在有两个矛盾的答案。哪个是正确的?
附带问题:
为什么浏览器甚至将它们解析为:
//blog.flowl.info/
->
http://blog.flowl.info/
而不是:
//blog.flowl.info/
->
http://blog.flowl.info///blog.flowl.info/
它们在位置 header 字段 (http://greenbytes.de/tech/webdav/rfc7231.html#header.location) 中有效。
它们在 HTTP 请求的请求行中无效。
浏览器以这种方式解析它,因为这是相对引用解析的工作方式 (http://greenbytes.de/tech/webdav/rfc3986.html#reference-resolution)。
据我所知,protocol/scheme 是 URL 的强制性部分,服务器和中间 proxies/gateways 等使用它来推断如何在普通 TCP/IP。如果您不使用 http/https 而是使用其他一些众所周知的甚至是自定义协议,则必须指定它。
浏览器是为浏览通过 HTTP 协议提供的 html 页面而创建的。因此,如果您不指定方案,它会自动将其默认为 http。还有绝对 v/s 相对 URL 的概念,您需要查看浏览器如何解析后续 URL。
像
这样的无方案网址//blog.flowl.info/
在 HTTP (rfc?) 中有效,就像在普通 HTTP Requests 和 Responses 中一样,或者它们仅在 [=33] 中有效=] 属性和内容 ?
HTTP/1.1 302 - Moved
Location: //blog.flowl.info
GET //blog.flowl.info
更新:
我现在有两个矛盾的答案。哪个是正确的?
附带问题: 为什么浏览器甚至将它们解析为:
//blog.flowl.info/
->
http://blog.flowl.info/
而不是:
//blog.flowl.info/
->
http://blog.flowl.info///blog.flowl.info/
它们在位置 header 字段 (http://greenbytes.de/tech/webdav/rfc7231.html#header.location) 中有效。
它们在 HTTP 请求的请求行中无效。
浏览器以这种方式解析它,因为这是相对引用解析的工作方式 (http://greenbytes.de/tech/webdav/rfc3986.html#reference-resolution)。
据我所知,protocol/scheme 是 URL 的强制性部分,服务器和中间 proxies/gateways 等使用它来推断如何在普通 TCP/IP。如果您不使用 http/https 而是使用其他一些众所周知的甚至是自定义协议,则必须指定它。
浏览器是为浏览通过 HTTP 协议提供的 html 页面而创建的。因此,如果您不指定方案,它会自动将其默认为 http。还有绝对 v/s 相对 URL 的概念,您需要查看浏览器如何解析后续 URL。