10

一文搞清楚URL和URI的区别到底是什么

 1 year ago
source link: http://www.androidchina.net/12767.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

一文搞清楚URL和URI的区别到底是什么 – Android开发中文站

最新消息:欢迎访问Android开发中文站!商务联系微信:loading_in
你的位置:Android开发中文站 > 热点资讯 > 一文搞清楚URL和URI的区别到底是什么

理解web世界的基本概念

?url=http%3A%2F%2Fdingyue.ws.126.net%2F2022%2F0703%2F2aece892j00refeuy000vc000hs00agg.jpg&thumbnail=690x10000&quality=75&type=jpg

作为一名开发,你肯定已经无数次听到过URL这个名次。也许也在某些场合碰到过URI这个东西。是否在有些时候你会想要了解这两个有什么关系?它们之间有什么区别吗?有时候这两个概念的使用是可以互换的,但细究下去毕竟是有所区别。在对比它们之间的区别之前,让我们把它们放到放大镜之下,具体了解一下这两个老朋友各自的定义是什么。

什么是URL?

Uniform Resource Locator或者简称URL— 顾名思义 — 就是对于某种web资源的引用,并且包含了如何获取该资源的方式。 最常见到的场景就是指一个网站的地址,也就是你在浏览器地址栏见到的那个东西。

?url=http%3A%2F%2Fdingyue.ws.126.net%2F2022%2F0703%2F09029473j00refeuz0008c000l8003sg.jpg&thumbnail=690x10000&quality=75&type=jpg

一个URL由如下几个部分构成:

  • 协议: 通常是https或者http。表示通过何种方式获取该资源。你可能还见过其他协议类型,比如ftp或者file
  • 协议后面跟着://
  • 主机名: 可以是一个已经在DNS服务器注册过的域名 —— 或者是一个IP地址 —— 域名就表示背后的IP地址。一组主要由数字组成的用于标识接入网络的设备的字符串。
  • 主机名后面可以指定端口,端口是可选的,如果不指定则使用默认端口,端口和主机名之间通过冒号隔开。
  • 资源路径: 用于表示资源在主机上的文件系统路径。
  • 可以在这之后通过问号连接可选的查询参数,如果有多个查询参数,通过&符连接
  • 最后一项,如果需要的话可以添加#作为需要跳转的页面上的矛点名称。

一个URL的组成部分可以参考下面的图示:

?url=http%3A%2F%2Fdingyue.ws.126.net%2F2022%2F0703%2Ff3184978j00refeuz000ic000uy0070g.jpg&thumbnail=690x10000&quality=75&type=jpg

什么是URI?

接下来我们来了解一下究竟什么是URI。与URL相似的部分是,Uniform Resource Identifier同样定义了资源的标识。但不同点在于URI通常不会包含获取资源的方式。

ISBN作为书目的资源定义就是一种URI,但不是URL。它清楚地为每一种出版的书目定义了唯一的数字编号,但没有包含任何如何获取这种资源的方法。

因此我们可以这样总结:URI是URL的超集,URL是URI的子集。每一个URL都必定也是一个URI。

为了阐明它们之间的关系,可以参见下面的图示

?url=http%3A%2F%2Fdingyue.ws.126.net%2F2022%2F0703%2Fb05bfa38j00refeuz0009c000hs006qg.jpg&thumbnail=690x10000&quality=75&type=jpg

所以实际上URL就是一种特定的URI,这种URI还含有如何获取资源的信息。如果一定需要一句话来总结本文的主要内容,那么RFC3986中的这句定义一定是最合适的:

The term “Uniform Resource Locator” (URL) refers to the subset of URIs that, in addition to identifying a resource, provide a means of locating the resource by describing its primary access mechanism.

作为开发者会发现我们有无数的英文缩写要了解和记住。但一旦能够更加深入地了解组成互联网基石的核心概念,就会发现上层概念越来越简单,并且由于对于底层概念的了解,实际工作质量也可能越来越高。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK