http爆炸重点学习——URL

这是看了《http权威指南》后心血来潮写的记录,一部分来自书中的原话,一部分来自自己的理解,好记性不如烂笔头嘛。

URL 是浏览器寻找信息时所需的资源位置。通过 URL,人类和应用程序才能找到、使用并共享因特网上大量的数据资源。URL 是人们对 HTTP 和其他协议的常用访问点:一个人将浏览器指向一个 URL,浏览器就会在幕后发送适当的协议报文来获取人们所期望的资源。

1.基本概念

URL 提供了一种定位因特网上任意资源的手段,但这些资源是可以通过各种不同的方案(比如 HTTP、FTP、SMTP)来访问的,因此 URL 语法会随方案的不同而有所不同。

这是不是意味着每种不同的 URL 方案都会有完全不同的语法呢?实际上,不是的。大部分 URL 都遵循通用的 URL 语法,而且不同 URL 方案的风格和语法都有不少重叠。

大多数 URL 方案的 URL 语法都建立在这个由 9 部分构成的通用格式上:

1
<scheme>://<user>:<password>@<host>:<port>/<path>;<params>?<query>#<frag>

几乎没有哪个 URL 中包含了所有这些组件。URL 最重要的 3 个部分是方案(scheme)、主机(host)和路径(path)

2.URI & URL & URN

“统一资源标识符(Uniform Resource Identifier,或URI)是一个用于标识某一互联网资源名称的字符串。该种标识允许用户对网络中(一般指万维网)的资源通过特定的协议进行交互操作。URI由包括确定语法和相关协议的方案所定义。” -fron wiki

从中可以看出,URI就是一串字符串,而关键在维基百科的后面。

“URI可被视为定位符(URL),名称(URN)或两者兼备。统一资源名(URN)如同一个人的名称,而统一资源定位符(URL)代表一个人的住址。换言之,URN定义某事物的身份,而URL提供查找该事物的方法。”

URN(Uniform Resource Name)是统一资源名称,以urn::作为规范的命名。

所以总结一下,URI是广泛的定义,阐述一件事物,而URL和URN是其具体的表现形式,类属于URI。

举个栗子。

习近平
这是一个人的名字,只是一个标识。但他不能准确的定位到习近平主席上,因为可能有重名。

北京市朝阳区XXX路XX号XX室(具体居住地址)
这是一个定位,它能间接地定位到习近平主席。

主席名::习近平
这是一个名称,代表所有主席中叫习近平的这个人。

故可以清晰看出,第一个可以类比于URI,第二个则是URL,第三个为URN。