URL与URI
咱们常常接触到的就是URL了,它就是咱们访问web的一个字符串地址,那么URI是什么呢?他们是什么关系呢?php
URL:uniform resource location 统一资源定位符
URI:uniform resource identifier 统一资源标识符
这也就是说,URI是一种资源的标识;而URL也是一种URI,也是一种资源的标识,但它也指明了如何定位Locate到这个资源。
URI是一种抽象的资源标识,既能够是绝对的,也能够是相对的。可是URL是一种URI,它指明了定位的信息,必须是绝对的web
URI详细介绍
URI通常来讲有如下三种构成方式:ide
1、绝对URI
指以scheme(后面跟着冒号)开头的URI
参考下面的URI,它符合当前的RFC4395规范:协议名称://域名.根域名/目录/文件名.后缀
例如http://b.c/d/e.f (假设b.c是一个可用的
域名,e.f是一个标准的文件)
这个URI是这样的:这是一个可经过
HTTP协议访问的资源,位于
主机b.c上,经过URI中的字符串“/d”访问主机上的“d”文件夹,经过“e.f”请求访问主机上“/d/e.f”这个文件。
这是URI的另外一个例子,指向一个用户的邮箱:mailto:名称@域名
其它的例子还有news:地址和xyz://whatever
关系:URL是URI命名机制的一个子集。
2、标志符
有的URI指向一个资源的内部。 这种URI以"#某某"结束,某某是指一个
anchor标志符(称为片断标志符)。
例如,下面是一个指向a的URI:
协议://域名/目录/文件#片断标示符(例如:/a/b.php#a)
3、相对URI
相对URI不包含任何命名规范信息。它的路径一般指同一台机器上的资源。
相对URI可能含有
相对路径(如,“..”表示上一层路径),还可能包含片断标志符。
为了说明相对URI,假设咱们有一个基本的URI: 协议://域名/目录a/目录b/文件c
下面的连接中使用了相对URI:
../文件D
它扩展成彻底的URI就是
"协议://域名/目录a/文件D"