HTTP 协议中 URI 和 URL 有什么区别

统一资源标志符 URI 就是在某一规则下能把一个资源独一无二地标识出来

拿人做例子,假设这个世界上所有人的名字都不能重复,那么名字就是 URI 的一个实例,通过名字这个字符串就可以标识出唯一的一个人

现实当中名字当然是会重复的,所以身份证号才是 URI,通过身份证号能让我们能且仅能确定一个人

那统一资源定位符 URL 是什么呢.也拿人做例子然后跟 HTTP 的 URL 做类比,就可以有

动物住址协议://地球/中国/浙江省/杭州市/西湖区/某大学/14号宿舍楼/525号寝/张三

可以看到,这个字符串同样标识出了唯一的一个人,起到了 URI 的作用,所以 URL 是 URI 的子集,URL 是以描述人的位置来唯一确定一个人的

在上文我们用身份证号也可以唯一确定一个人.对于这个在杭州的张三,我们也可以用:

身份证号:

123456789 来标识他

所以不论是用定位的方式还是用编号的方式,我们都可以唯一确定一个人,都是 URl 的一种实现,而 URL 就是用定位的方式实现的 URI.

回到 Web 上,假设所有的 Html 文档都有唯一的编号,记作 Html:xxxxx,xxxxx 是一串数字,即 Html 文档的身份证号码,这个能唯一标识一个 Html 文档,那么这个号码就是一个 URI

而 URL 则通过描述是哪个主机上哪个路径上的文件来唯一确定一个资源,也就是定位的方式来实现的 URI

对于现在网址我更倾向于叫它 URL,毕竟它提供了资源的位置信息,如果有一天网址通过号码来标识变成了 ,那感觉叫成 URI 更为合适.不过这样子的话还得想办法找到这个资源咯…

 

 

转载:https://www.zhihu.com/question/21950864

原文地址:https://www.cnblogs.com/xiaomaomao/p/15635384.html