本文多是收集资料,参考文章如下:
https://www.jianshu.com/p/ba15d066f777
https://danielmiessler.com/study/difference-between-uri-url/
https://www.cnblogs.com/chengdabelief/p/6635045.html
概念
相信大家都听过 URI 和 URL ,之前以为两个只是名字不相同,那么浏览器里面地址栏是什么呢,是URI 还是 URL?
先来看下两者的概念:
URI : Universal Resources Identifer 统一资源标志符
URL: Universal Resources Locator 统一资源定位符
再增加一个概念:
URN: Universal Resource Name 统一资源名称
维基百科描述:
“URI可以分为URL,URN或同时具备locators 和names特性的一个东西。URN作用就好像一个人的名字,URL就像一个人的地址。换句话说:URN确定了东西的身份,URL提供了找到它的方式。”
细说其区别
先来看个例子,一个人的唯一标识是什么?我们能想到身份证号,通过身份证号能让我们能且仅能确定一个人,所以身份证号:6103829999 可以理解为URI,那么还可以根据这个人的物理地址来找个这个人。例如,人群住址协议://地球/中国/浙江省/杭州市/西湖区/某大学/14号宿舍楼/525号寝/张三.人,哈哈这个住址格式是不是像极了 HTTP 的 URL 地址。是的,这个住址可以理解为 URL。
结论:
- URI,是统一资源标识符,是一种更高层次抽象的概念,用来唯一的标识互联网中的抽象或物理资源的字符串。
- URL是统一资源定位器,它是一种具体的URI,即URL可以用来标识一个资源,而且还指明了如何locator这个资源,让URI能成为URL的当然就是那个“访问机制”,“网络位置”。e.g.http:// 或者 ftp://. ,所以我们常见的浏览器地址栏内容还是称为 URL 更合适一些。
- URN,统一资源命名,是通过名字来标识资源比如mailto:java-net@java.sun.com,就是一个特殊的名字。
- URL和URN都是一种URI,URL和URN则是具体的资源标识的方式。
例子,来自权威的RFC:
- ftp://ftp.is.co.za/rfc/rfc1808.txt (also a URL because of the protocol)
- http://www.ietf.org/rfc/rfc2396.txt (also a URL because of the protocol)
- ldap://[2001:db8::7]/c=GB?objectClass?one (also a URL because of the protocol)
- mailto:John.Doe@example.com (also a URL because of the protocol)
- news:comp.infosystems.www.servers.unix (also a URL because of the protocol)
- tel:+1-816-555-1212
- telnet://192.0.2.16:80/ (also a URL because of the protocol)
- urn:oasis:names:specification:docbook:dtd:xml:4.1.2
这些全都是URI, 其中那些提供了访问机制的是URL。
各自的组成
- URI
Web上可用的每种资源如HTML文档、图像、视频片段、程序等都是一个来URI来定位的;
URI一般由三部组成
①访问资源的命名机制
②存放资源的主机名
③资源自身的名称,由路径表示,着重强调于资源。
- URL
URL是Internet上用来描述信息资源的字符串,主要用在各种WWW客户程序和服务器程序上,特别是著名的Mosaic。
采用URL可以用一种统一的格式来描述各种信息资源,包括文件、服务器的地址和目录等。
URL一般由三部组成
①协议(或称为服务方式)
②存有该资源的主机IP地址(有时也包括端口号)
③主机资源的具体地址。如目录和文件名等