什么是 URI/URL/URN ?

什么是 URI/URL/URN ?

最初认识RESTful,读者可能对URI/URL/URN三个概念不是很清楚,这里简单对比一下,首先读者必须清楚一件事情:URL和URN都是URI的子集 ,换言之URL和URN都是URI,但反过来说就不成立,它们的结构如下:
image

URI的全称是Uniform Resource Identifier,它是“统一资源标识符”,在整个互联网上所有的访问地址都抽象成了资源 ,这些资源拥有唯一的标识符,我们通过该标识符来访问资源,这个标识符就是URI。而URI在表述资源时分离成了两个子类型,一个就是我们常听到的URL,而另外一个就是URN。

URL和URI名字相近,它的全称是Uniform Resource Location ,意思是:“统一资源定位符”,我们通常可以通过URL来准确定义一个资源的位置,如:http://localhost:8080/user/1。它主要包含几部分:

  • http:协议名称,在RESTful中常用的是http/https协议,而互联网上还可以使用ftp、stmp等各种协议。
  • localhost:主机的域名,这个域名可以是IP地址,如:10.0.0.100这种格式。
  • 8080:端口号,如果互联网上的URL不带端口号,就使用默认端口:80,如:http://localhost/user/1,这种格式使用80端口。
  • 后边的/user/1就是当前访问资源的名称,它精确定位了所访问资源的路径。

有一点需要注意,在RESTful中通常会使用类似:/user/:id 来定义一个Api,它使用不同的参数来读取不同的用户信息,这种情况下:/user/1 和 /user/2 表示两个URI,而不是一个,而您后端的程序逻辑可能定义的是一个。

URN,最后谈谈URN,它的全称是Uniform Resource Name ,意思是:“统一资源名”,那么它有什么作用呢?实际上URN比URL更方便去定位资源,它只需要知道一个域名就可以了,直接隔离了资源本身所在的位置。换句话说,如果你把资源从host1切换到host2 ,这种情况下使用URL的话是需要变更访问地址的,如果是直接使用URN,那么名称不变就可以不用做任何操作,程序依旧会访问URN背后映射的真实资源地址。URN可以用来解决一些与资源位置相关的问题,例如资源被移动或者替换时,URN可以保持不变,从而避免了链接失效的问题。URN的通用语法如下:

< URN > ::= “urn:” < NID > “:” < NSS >

其中NID是命名空间标识符,NSS则是标识命名空间的特定字符串,可以当做唯一名称。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

丶Yann

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值