【问题标题】:Schemeless URL valid in HTTP?无方案 URL 在 HTTP 中有效?
【发布时间】:2015-02-09 14:13:45
【问题描述】:

是无方案的网址吗

//blog.flowl.info/

在 HTTP (rfc?) 中有效,例如在普通 HTTP RequestsResponses 中,还是它们仅在 HTML 属性和内容中有效?

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/

【问题讨论】:

  • Quentin 的回答引用了 RFC 2616。Julian Reschke 的引用了 RFC 7231,它取代了 2616,所以 Julian 的回答是正确的。这是两个规范之间发生变化的事情之一 (greenbytes.de/tech/webdav/rfc7231.html#changes.from.rfc.2616)
  • 找到这个有点麻烦;这里有一些关键字(主要搜索是看 cmets 吗?):位置标头,无方案,双斜杠语法,只有权限,只有主机,无协议,相对引用,相对 URI,相对 URL,非绝对 URL、https、重定向。

标签: html http url-scheme


【解决方案1】:

它们在 Location 标头字段中有效 (http://greenbytes.de/tech/webdav/rfc7231.html#header.location)。

它们在 HTTP 请求的请求行中无效。

浏览器以这种方式解析它,因为这是相对引用解析的工作原理 (http://greenbytes.de/tech/webdav/rfc3986.html#reference-resolution)。

【讨论】:

    【解决方案2】:

    据我了解,协议/方案是 URL 的必需部分,服务器和中间代理/网关等使用它来推断如何在普通 TCP/IP 之上处理通信。如果您不使用 http/https 而是使用其他一些众所周知的甚至自定义协议,则必须指定它。

    浏览器是为浏览通过 HTTP 协议提供的 html 页面而创建的。因此,如果您不指定方案,它会自动将其默认为 http。还有绝对与相对 URL 的概念,您需要了解浏览器如何解析后续 URL。

    【讨论】:

      猜你喜欢
      • 2017-05-27
      • 1970-01-01
      • 2019-07-31
      • 1970-01-01
      • 2015-04-11
      • 1970-01-01
      • 2010-12-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多