浅谈Url和Uri的区别

本文深入解析Url和Uri的概念,强调两者在描述资源方面的主要区别。Uri关注资源的唯一性,而Url侧重于资源的定位。通过具体实例,阐述了两者在Android应用和网络资源中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

        最近在学Android,隐式启动Activity要将一个Uri作为参数传递到Intent中。因此不可避免的接触到Uri和Url。网上查了一个小时资料,发现怎么理解的都有,描述的刚好相反的也有,索性把自己理解的写出来,希望大家能指正。

        Url和Uri都用于描述一个资源,该资源可以是一个网络资源也可以是一个本地资源。个人认为Url和Uri的最重要区别在于对这个资源的描述侧重点不同:

  •  Uri侧重于描述该资源(在网络中或在本地)的唯一性。
  •  Url侧重于描述该资源(在网络中或在本地)怎么被找到(定位该资源的位置)。

        例子1:

                                                                    content://com.android.contacts/contacts/3

        以上例子是android的通讯录的Uri,即看到这条Uri,Android系统能确定(区别于其它)该Uri是要找到通讯录里面的第三个人的信息。那么 content为资源名称,com.android.contacts是资源提供者的名字,contacts/3代表的是该资源提供者的contacts这个数据集中的第3条资源。从这个例子中可以看出第3个人的信息并不是一个实际的路径,而是只要能区分别的数据集即可。

      例子2:

                                                      浅谈Url和Uri的区别_Sunflower401的博客-优快云博客

       以上例子是一个Url,通俗讲就是一个网址,这个网址代表是blog.youkuaiyun.com该域名下的一个具体的资源,其实就是本篇博客。资源的具体位置是blog.youkuaiyun.com/服务器下sly923113560/article/details这个路径下的89313965这篇博客。因此该Url的主要作用是能够找到本博客89313965这个资源。和上个例子比较,该例中要找到某个资源,必须在Url中提供一个具体的路径才行。

      产生Uri和Url混淆的原因主要是,1、既然Uri能够描述该资源的唯一性(Uri的功能),那么该Uri也就有定位该资源的能力(Url的功能);2、既然Url能够定位到唯一的一个资源,那么Url也应该能够描述该资源的唯一性。从这个角度理解,两者是很相似的,但也能够体现出两者的本质区别:Uri是对某个资源的抽象描述,而Url是一种定位该资源的访问机制。Uri比Url更抽象,且Uri的思想是包含了Url的。

由于本身并不擅长计算机网络,所以无法从专业角度阐述自己的想法,对两者的区别目前仅理解到这个层次就够用了。以上想法仅仅是自己的理解,不代表正确的结论, 写出来也是希望能够得到大家的指正,有了心得想法会更新在这里。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值