为什么URI允许缺少协议(而URL不允许)?
在wikipedia中,方案(甚至是路径)似乎是URI的强制性组成部分:
URI通用语法由五个层次结构组成 组件:[8]
URI = 方案:[// authority] 路径 [?query] [#fragment]
或者缺少的协议默认为某些内容(例如http)?我在文档中什么都没找到。
new URI("my.html"); // 1
new URI("xabc:my.html"); // 2
new URL("my.html"); // 3
new URL("xabc:my.html"); // 4
关于“强制性”路径-好的,存在倾斜URI。但是为什么要允许缺少协议(即使对于绝对必需的斜率URI也应该存在该协议)
我可以理解,相对 URL / URI不需要协议(<img src="/images/pic.png">
),但是在这种情况下,URL也给出了运行时java.net.MalformedURLException: no protocol
(而URI不')。