【发布时间】:2019-06-01 23:20:00
【问题描述】:
为什么 URI 允许缺少协议(而 URL 不允许)?
在wikipedia 中,Scheme(甚至是 Path)似乎是 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 不需要)。
【问题讨论】:
-
显示抛出
MalformedURLException异常的代码