最近经常看到URL统一资源定位符和URI统一资源标识符,做一个系统性的记录,下次开学了重点讲解下。希望对大家有帮助
【官方定义】
官方的定义分别如下:
(URL)A Uniform Resource Locator thatidentifies the location of an Internet resource as specified by RFC 1738.(统一资源定位符用于标示网络资源的位置)
(URI,统一资源标识符)A Uniform Resource Identifier that identifies an abstract or physical resource, as specified by RFC 2396.(统一资源标识符用于标示一个抽象或者物理资源)
【格式】
(1)URL的格式一般由下列三部分组成:
协议(或称为服务方式);
存有该资源的主机IP地址(有时也包括端口号);
主机资源的具体地址。
(2)URI一般由三部分组成:
访问资源的命名机制;
存放资源的主机名;
资源自身的名称,由路径表示。
【举例】
(1)大家平常用图片的时候。到底是imgUrl好呢,还是imgUri好?显然,如果说imgUrl是肯定没问题的,因为即使它实际上是url,那它也是uri的一种。那么用imgUri
有没有问题呢?此时则要看它的可能取值,如果是绝对路径,能够定位的,那么用imgUri是没问题的,而如果是相对路径,那还是不要用ImgUri的好。总之,用imgUrl是肯定没问题的,而用imgUri则要视实际情况而定。
(2)URI 是从虚拟根路径开始的;URL是整个链接
如URL http://zhidao.baidu.com/question/68016373.html
URI 是/question/68016373.html
【实例理解】
这里分享个大牛的解析,简单易懂~
统一资源标志符URI就是在某一规则下能把一个资源独一无二地标识出来。
拿人做例子,假设这个世界上所有人的名字都不能重复,那么名字就是URI的一个实例,通过名字这个字符串就可以标识出唯一的一个人。
现实当中名字当然是会重复的,所以身份证号才是URI,通过身份证号能让我们能且仅能确定一个人。
那统一资源定位符URL是什么呢。也拿人做例子然后跟HTTP的URL做类比,就可以有:
动物住址协议://地球/中国/浙江省/杭州市/西湖区/某大学/14号宿舍楼/525号寝/张三.人
可以看到,这个字符串同样标识出了唯一的一个人,起到了URI的作用,所以URL是URI的子集。URL是以描述人的位置来唯一确定一个人的。
在上文我们用身份证号也可以唯一确定一个人。对于这个在杭州的张三,我们也可以用:身份证号:123456789来标识他。
所以不论是用定位的方式还是用编号的方式,我们都可以唯一确定一个人,都是URl的一种实现,而URL就是用定位的方式实现的URI。
回到Web上,假设所有的Html文档都有唯一的编号,记作html:xxxxx,xxxxx是一串数字,即Html文档的身份证号码,这个能唯一标识一个Html文档,那么这个号码就是一个URI。而URL则通过描述是哪个主机上哪个路径上的文件来唯一确定一个资源,也就是定位的方式来实现的URI。对于现在网址我更倾向于叫它URL,毕竟它提供了资源的位置信息,如果有一天网址通过号码来标识变成了http://741236985.html,那感觉叫成URI更为合适,不过这样子的话还得想办法找到这个资源咯…
【总结:】
①通俗理解URL:目前URI的最普遍形式就是无处不在的URL或统一资源定位器
②URI 是统一资源标识符,而 URL 是统一资源定位符。因此,笼统地说,每个 URL 都是 URI,但不一定每个 URI 都是 URL。这是因为 URI 还包括一个子类,即统一资源名称 (URN),它命名资源但不指定如何定位资源。
相关推荐
#### 三、URI与URL之间的区别及联系 - **区别**: - **URI**是对资源的标识,不提供如何访问该资源的信息。 - **URL**是一种特殊的URI,不仅标识资源,还提供访问资源的方法。 - **URN**(Uniform Resource Name...
在C++程序中,与URI和URL相关的任务通常涉及字符串操作,而Boost.URL库则为这些任务提供了高级抽象,避免了底层的字符串处理复杂性。 Boost.URL库的核心功能包括: 1. **解析**: Boost.URL库可以将一个完整的URL...
在探讨“URI和URL区别”这一主题时,我们首先需要明确这两个概念的基本定义与功能,进而深入理解它们之间的差异以及在互联网技术中的具体应用。URI(Uniform Resource Identifier,统一资源标识符)和URL(Uniform ...
URL类提供了一种简单的方式来定位和获取网络资源,而无需关心具体的协议细节、数据格式或与服务器的通信机制。Java会根据提供的URL自动处理这些细节。 ##### 2. 类结构 - **继承关系**:`URL` 类继承自 `java.lang....
二、URI和URL的区别及关系 简而言之,URI是标识某一个资源,而URL用位置来标识一个资源。 一、URI、URL和URN Web上地址的基本形式是URI,它有多种形式:常见的有URL和URN。 URI = Universal Resource Identifier ...
总的来说,理解和区分URI与URL对于理解和开发Web应用程序至关重要。在编程或配置网络服务时,正确使用这两个概念能够确保资源的准确定位和访问。例如,在STRUTS配置文件中,URI可能用来定义一个动作或者资源的标识,...
对java网络编程里的URL、URI研究,如果需要我也可以将研究上篇传上来
- **链接生成**:在构建动态网站时,Uri库可以轻松地生成带参数的链接,简化URL管理。 - **API设计**:在RESTful API设计中,正确处理和验证URI是至关重要的,Uri库为此提供了便利。 - **数据交换**:当应用程序...
URI(Uniform Resource Identifier)和URL(Uniform Resource Locator)是互联网上资源定位的两种重要概念,它们之间存在着密切的关系,但又有明显的区别。 URI是统一资源标识符,它是一个全局唯一的字符串,用于...
对比两个url是否一致,对比两个URL是否一致,包括端口,方法等,非常好用
例如,使用`Uri.withAppendedPath()`添加路径,使用`Uri.encode()`和`Uri.decode()`进行URL编码解码。 7. **文件Uri与安全问题**: 文件Uri通常以`file:`开头,直接访问可能导致安全问题,例如文件权限泄露。因此...
URI-模板-模式-匹配器概述将 URL 与许多 RFC 6570 URI 模板级别 1 进行比较以找到匹配项。 代码是用Java编写的。 这解决了什么问题? 给定一个 URL,HTTP 服务器必须确定该 URL 是否与 URI 模板之一匹配。 一个用例...
有两种形式: URL:目前URI的最普遍形式就是无处不在的URL或统一资源定位器。 URN:URL的一种更新形式,统一资源名称(URN, Uniform Resource Name)不依赖于位置,并且有可能减少失效连接的个数。但是其流行还需...
URI-模板-模式-匹配器概述 将 URL 与许多 RFC 6570 URI 模板级别 1 进行比较以找到匹配项。 代码是用Java编写的。 这解决了什么问题? 给定一个 URL,HTTP 服务器必须确定该 URL 是否与 URI 模板之一匹配。 一个用例...
URN 则与 URL 不同,它提供了一个独立于位置的资源名称,旨在为资源提供一个持久不变的标识,即使资源的位置或状态发生变化。URN 是一个全局唯一的标识,通常依赖于命名服务来查找具体的资源。 在Java中,URI和URL...
`uriparser`库提供了一套API,使得开发者可以方便地分解URL的各个部分,如协议(scheme)、主机(authority)、路径(path)、查询字符串(query)和片段(fragment)。 1. **协议(scheme)**:`uriparser`允许...
URN(Uniform Resource Name)是统一资源名称,与URL不同,它提供了一个独立于位置的资源标识方式,用于创建持久不变的资源标识。URN的目的是为了在资源的位置或访问方式发生变化时,仍能准确找到资源。 URI、URL和...
4. URL解密:解密过程与加密相反,首先使用Uri.UnescapeDataString解码Base64字符串,然后使用相同的密钥和IV进行解密。 四、安全注意事项 1. 密钥管理:密钥和初始化向量(IV)必须安全存储,避免被泄露。可以...
#### 一、URI的定义与作用 **URI**(Universal Resource Identifier,通用资源标识符)是一种用于唯一标识互联网上资源的标准方法。它为资源提供了一个可定位、可命名的引用方式,是现代互联网体系结构中的核心组成...