【思考】URI和URL的区别?以及URL的结构

URI = Universal Resource Identifier
URL = Universal Resource Locatorhtml

在学习中,咱们不免会遇到 URI 和 URL,有时候都傻傻分不清,为啥这边是 URI 那边又是 URL,这二者到底有什么区别呢?服务器

咱们从名字上看网络

  • 统一资源标识符(Uniform Resource Identifier, URI):是一个用于标识某一互联网资源名称的字符串。
  • 统一资源定位符(Uniform Resource Locator, URL):是一个用于标识和定位某一互联网资源名称的字符串。

可能你们就比较困惑了,这俩好像是同样的啊?那咱们就类比一下咱们现实生活中的状况:
咱们要找一我的——张三,咱们能够经过他的惟一的标识来找,好比说身份证,那么这个身份证就惟一的标识了一我的,这个身份证就是一个 URI
而要找到张三,咱们不必定要用身份证去找,咱们还能够根据地址去找,如 在清华大学18号宿舍楼的404房间第一个床铺的张三,咱们也能够惟一肯定一个张三,
动物住址协议://地球/中国/北京市/清华大学/18号宿舍楼/404号寝/张三.人。而这个地址就是咱们用于标识和定位的 URL
咱们从上面能够很明显的看出,URI 经过任何方法标识一我的便可,而 URL 虽然也能够标识一我的,可是它主要是经过定位地址的方法标识一我的,因此 URL 实际上是 URI 的一个子集,即 URL 是靠标识定位地址的一个 URI学习

Url 的构成

URL(Uniform Resource Locator,统一资源定位符),用于定位网络上的资源,每个信息资源都有统一的且在网上惟一的地址。url

Url通常有如下部分组成
scheme://host:port/path?query#fragmentcode

Scheme: 通讯协议,通常为http、https等;
Host: 服务器的域名主机名或ip地址;
Port: 端口号,此项为可选项,默认为80;
Path: 目录,由“/”隔开的字符串,表示的是主机上的目录或文件地址;
Query: 查询,此项为可选项,能够给动态网页传递参数,用“&”隔开,每一个参数的名和值用“=”隔开;
Fragment: 信息片断,字符串,用于指定网络资源中的某片段;orm


其实,把 URL 说成是网址实际上是很不严谨的说法,由于 URL 有很严格的结构,表示也很灵活、有弹性。
RFC 3986: Uniform Resource Identifier (URI): Generic SyntaxSyntax Components 把 URL 描述为以下图:htm

如图所示,把 URL 分红几个部分,这样即可以了解URL的构成。 在 URI scheme - Wikipedia 页面中对 URL 的描述更为详细,以下图:
blog

相关文章
相关标签/搜索