在某些输入上,我们允许以下路径:
- C:\文件夹 \\
- 服务器\文件夹
- http://example.com/...
我可以将它们全部标记为"URI"吗?
C:/Folder
和/server/Folder/
是文件路径。
http://example.com/
是一个 URL,它是一个 URI 子类型,因此您可以将其标记为 URI,但不能反过来(就像正方形是矩形,反之则不然(。
当然,在这里你发布了一个清晰、简单的例子。在讨论 URI 和 URL 之间的区别时,答案不仅不明确,而且存在争议。我建议查看此线程以及其中发布的答案以进行澄清。不过,一般来说,人们普遍认为主要区别在于URL提供了一种访问方法(例如 http://(。
因此,如果我们将您的第一个文件路径转换为 URL,它将变为以下内容(请注意添加的访问方法(:
file:///c:/Folder/test.txt
如果您修改所有文件路径以包含访问方法,如我的示例所示,则可以将它们标记为 URI。
严格来说不,除非你确保它是一个绝对路径并在开头添加"file://
"。
根据 RFC 3986 第 3 节:
URI = scheme ":" hier-part [ "?" query ] [ "#" fragment ] hier-part = "//" authority path-abempty / path-absolute / path-rootless / path-empty
scheme
和":"
不在方[]
括号中,这意味着它们不是可选的。
标准称这些为"路径相对方案无URL字符串",它们在HTML元素的href
属性中有效,因此可以将相对Unix路径称为"URL"(而不是绝对的Unix路径或Windows路径(。