gpt4 book ai didi

java - 为什么 URI 构造函数允许缺少协议(protocol)(而 URL 则不允许)?

转载 作者:行者123 更新时间:2023-12-02 10:24:33 24 4
gpt4 key购买 nike

为什么 URI 允许缺少协议(protocol)(而 URL 不允许)?

wikipedia方案(甚至路径)似乎是 URI 的必需组成部分:

The URI generic syntax consists of a hierarchical sequence of five components:[8]

URI = scheme:[//authority]path[?query][#fragment]

或者缺少协议(protocol)默认值(例如http)?我在文档中没有找到类似的内容。

new URI("my.html");        // 1
new URI("xabc:my.html"); // 2
new URL("my.html"); // 3
new URL("xabc:my.html"); // 4

关于“强制”路径 - 好的,有一个倾斜的 URI。但是为什么允许缺少协议(protocol)(即使对于要求绝对的间接 URI 也应该存在)

我可以理解相对 URL/URI 不需要协议(protocol)( <img src="/images/pic.png"> ),但 URL 提供运行时 java.net.MalformedURLException: no protocol在这种情况下(而 URI 则不然)。

最佳答案

你的相对路径一定是错误的,Java 的 URI支持相对 URI 的空方案:

relative URI, that is, a URI that does not specify a scheme. Some examples of hierarchical URIs are:

docs/guide/collections/designfaq.html#28

方案是可选的:

[scheme:]scheme-specific-part[#fragment]

类似于 URL ,例如:

URL url = new URL("/guidelines.txt");

关于java - 为什么 URI 构造函数允许缺少协议(protocol)(而 URL 则不允许)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54071920/

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