公众号旧文
网址不是URL吗?为什么有时候却写成URI?
之前我一直以为网址等同于URL。
但近来频繁看到另一个词:URI。
URL和URI有什么区别?
今天这篇文章,我争取把这件事讲清楚。
一、我们平时说的网址,通常就是 URL
比如:
https://example.com/news?id=1
这就是一个非常标准的URL。
它里面包含了协议、地址、路径、参数。
URL(统一资源定位符,Uniform Resource Locator)的本质是资源的位置和访问方式。
它不仅告诉你这个资源在哪里,还告诉你应该怎么访问。
比如用 http 还是 https,去哪个网站,请求哪个页面。
所以我们平时说的网址,绝大多数情况下,确实就是 URL。
二、那 URI 又是什么?
URI 全称 Uniform Resource Identifier。
翻译过来就是统一资源标识符。
注意它的重点,不再是地址,而是标识。
也就是说 URI 的核心目的,是标识一个资源。
三、URL 实际上是 URI 的一种
URL 属于 URI。
也就是说,所有 URL 都是 URI。
但不是所有 URI 都是 URL。
四、一个例子
比如:
mailto:test@example.com
它表示一个邮件地址资源,以及使用 mailto 协议进行处理。
也就是给某个邮箱发邮件。
这东西算 URI。
因为它标识了一个资源。
但很多人会觉得,它不像传统意义上的网址。
因为它并不是打开一个网页。
再比如:
urn:isbn:9787302511854
这是一本书的 ISBN 标识。
它属于 URN(Uniform Resource Name,统一资源名称)。
URN 也是 URI 的一种经典子类。
它能唯一标识一本书,但显然也不是传统意义上的网址。
五、为什么现在很多地方更喜欢写 URI
因为 URI 是更大的概念。
现代互联网里,并不只有网页。
例如:
- 邮件
- APP Deep Link
- WebSocket
- 文件资源
这些都可能使用 URI。
所以很多标准文档,干脆统一使用 URI。
六、那网址到底是不是等同于 URL?
如果是日常语境。
基本可以认为 网址 ≈ URL
因为大家说的网址通常都是:
https://xxx.com/xxx
这种可以直接访问的地址。
但如果严格一点。
网址更偏向网页地址。
而 URI 的范围更大。
七、为什么URL和URI开始混着用了
因为现代浏览器,把很多细节隐藏掉了。
比如你输入:
example.com
浏览器会自动补全。
于是很多人会逐渐觉得网址、URL、URI 似乎全是一个东西。
而另一方面,程序员和协议文档,又越来越喜欢使用 URI。
当普通用户看到后,就会开始疑惑 URL 和 URI 到底是不是一回事。
严格来说:
URL 更强调怎么找到资源, URI 更强调如何标识资源。
只是现代互联网里,两者的边界已经越来越模糊。
八、一张表总结
可以这样理解:
| 名称 | 作用 |
|---|---|
| URI | 资源标识符(更大的概念) |
| URL | 资源的位置与访问方式(URI 的一种) |
| 网址 | 日常语境下通常指 URL |
所以把网址理解成 URL,并没有错。
因为绝大多数情况下,人们说的网址,就是 URL。
扩展阅读:
关于“胖子百科”被瑞哥小号“网络技术干货圈”更多次洗稿的说明
