URL、URI的认识
前言
qq的一个运维高级群里有位同学在做nginx的location匹配的时候,竟然还无法搞清楚URL和URI的概念和联系,因此我写篇文章总结一下概念,当然大部分概念都是google摘的,说乱的说看不懂的请便不送,本身哥的博客就不是写给没基础的人看的,看不懂回去补基础吧
URI
Web上的每种资源,包括html文档、图像、程序片段、甚至包括这篇我正在编写的博客,都是由一个统一资源标识符(Unifrom Resource Identifier,简称"URI")进行定位的。例如当前这篇博客的URI就是http://write.blog.csdn.net/postedit
URI的组成部分
参考URI示例
http://www.haolianxi.cn/home/wangzhengyi/test.php?name="王"&age=24
存放资源的主机名
以参考URI为例,则主机名为www.haolianxi.cn
片段标志符
没有理解,不做讨论
相对URI
相对URI不包含任何命名规范信息。它的路径通常是指同一机器上的资源。相对URI可能包含有相对路径,还可能包含片段标志符。参考URI示例中的相对URI为:/home/wangzhengyi/test.php?name="王"&age=24
URL
URL是Uniform Resource Location的缩写,译为“统一资源定位符”.通俗的说,URL是Internet上用来用来描述信息资源的字符串。采用URL可以用一种统一的格式描述各种信息资源,包括文件,服务器地址和目录等,从定义就可以看出,URL是URI的子集。
URL的格式
协议(不可缺少)
协议的类型很多,比较常用的http、ftp、svn等等
存有该资源的主机ip地址和端口号(不可缺少)
很多人会说,我没有看到ip地址和端口号啊,例如我访问www.haolianxi.cn,我不知道ip地址和端口号是什么啊,这是因为用了dns的关系,方便你的记忆,通过nginx或者apache这种webserver搭建了虚拟主机,做了域名和(ip+端口)的映射
主机资源的具体地址(可有可无)
从示例URI中可以看出具体地址是/home/wangzhengyi/
URL和URI的区别和联系
最简单的一句话,URL是URI的子集,目前URI的最普遍的形式就是无处不在的URL
Nginx的Location匹配
这个可以不用纠结,查看nginx关于location指令的解释,发现该指定允许对不同的URI进行不同的配置