URI和URL以及URN三者的区别是什么

大超

有时候看到一些技术文章里面写到URI,刚开始以为是写错了,平时不都是URL吗?其实是有URI这个缩写的,除了它还有一个URN,只不过URL最常使用,属于明星缩写。下面分别说一些这三个缩写的区别。

Uniform Resource Identifier (URI)

字面意思就是“统一资源标识符”。比如:https://niuchao.com就是一个URI,[email protected]也是一个URI。就是在网络上给某个资源做个标识。

Uniform Resource Locator (URL)

字面意思就是“统一资源定位符”。常见的网址https://niuchao.com就是URL,这个不也是URI吗?是的,URL一定是URI,但是URI不一定是URL,URI更广义一些,包含了URL。URL提供了一种访问定位因特网上任意资源的手段,但是这些资源可以通过不同的方法(例如HTTP、HTTPS、FTP、SMTP)来访问,不管怎样,他都基本上由9个部分构成(把用户名和密码放到一起写了):

  1. scheme:获取资源使用的协议,例如http、https、ftp等,没有默认值。

  2. user:password:用户名与密码,一般访问ftp时会用到,有时候也用于http或者https。

  3. host:主机,有时候是IP,有时候也可以是主机名,例如niuchao.com。

  4. port:端口,访问主机时的端口,如果http访问默认80,可以省略。https默认端口是443,ftp默认端口是21。

  5. path:路径,通过host:port我们能找到主机,但是主机上文件很多,通过path则可以定位具体文件。例如https://niuchao.com/blog/d2c8b4a0baade7048ca0f94442fea365.html。则path是/blog/d2c8b4a0baade7048ca0f94442fea365.html,表示我们访问/blog/d2c8b4a0baade7048ca0f94442fea365.html这个文件。

  6. params:这个很少见,主要作用就是向服务器提供额外的参数,用来表示本次请求的一些特性。例如ftp传输模式有两种,二进制和文本,你肯定不希望使用文本形式传输二进制图片,这样你的图片下载下来后可能没法看了。为了向应用程序提供更丰富的信息,URL中有个专门的部分来表示这种参数。例如ftp://file.baidu.com/pub/guid.pdf;type=d其中的type=d就是params。

  7. query:通过get方式请求的参数,例如:niuchao.com/index.html?username=dgh&passwd=123

  8. fragment:例如niuchao.com/index.html#1。当html页面比较长时,我们通常会将其分为好几段,#1就可以快速定位到某一段。

Uniform Resource Name (URN)

字面意思就是“统一资源名称”。niuchao.com就是一个URN,当然,它也是URI,所以,URN也属于URI。

大概明白了吧?把niuchao.com(URN)加一个协议(https),就变成https://niuchao.com(URL)。URN和URL都属于URI。

有问题可在下方评论留言,或关注“大超小志”微信公众号留言。

标签: URI URL URN 网站知识

留言评论

如需留言或评论,请在微信中打开此页面。