web中的最基本的指路标 —— URI与URL

引言

互联网中,存在许许多多页面劫持的现象,挂羊头卖狗肉偷数据等等现象也层出不穷。
然而上网辨别自己是否是一个安全的访问,最基础最安全的方法却是看网址。
比如:
https://www.baidu.com
这是百度的网址,相信对大部分中国网民来说,并不陌生。这是我们进入互联网的入口之一,它是一个搜索引擎入口,连通大部分网民想要搜寻的具体资源。
而网址实际上就是一个URL。

什么是URL?

统一资源定位符(Uniform Resource Locator)是对可以从互联网上得到的资源的位置和访问方法的一种简洁的表示,是互联网上标准资源的地址。互联网上的每个文件都有一个唯一的URL,它包含的信息指出文件的位置以及浏览器应该怎么处理它。
说完它,其实我们应该说一说URI。

什么是URI?

统一资源标识符(Uniform Resource Identifier,或URI)是一个用于标识某一互联网资源名称的字符串。 该种标识允许用户对任何(包括本地和互联网)的资源通过特定的协议进行交互操作。URI由包括确定语法和相关协议的方案所定义。

那么URI和URL是什么关系呢?

显而易见,我们可以通过上述定义了解到,URL是遵循于URI的定义的。

例子

我们重新分析一个github的网址:
https://github.com/vuejs/vue-router/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20
拆解它的每一块

https是它的协议
github.com是它的域名
443是它的默认端口号
vuejs好比是一个项目名称
vue-router好比是一个项目分类
issues好比是一个项目分类下的某元素集合
?后面的utf8=等等是对该集合的筛选条件
这是一个对资源集合的URL

那么对某一个单一资源的URI是什么呢?
拿GitHub的网址继续比较,好比某一个issue就是我们所需要查找的单一资源
https://github.com/vuejs/vue-router/issue/296
同上,拆解相同的部分
issue代表资源的名称不需要加s
296是这个单一资源的唯一标记
这样我们就通过一个完整的URI查找到这个资源
服务器根据我们所请求的URI返回

总结

一个资源集合:

[协议]://[域名]:[端口号]/[项目名]/[项目下的主类]/[该主类下的子类]/ ... /[资源集合(s)]?[集合筛选条件]

一个单一资源:

[协议]://[域名]:[端口号]/[项目名]/[项目下的主类]/[该主类下的子类]/ ... /[资源名]/[资源标识]

在我们的web应用中,实际上都应该努力去遵循这一个标准,对资源的定位,提供给搜索引擎使用的标准。

相关推荐