[HTTP权威指南笔记]URI和URL的区别 - pod4g/tool GitHub Wiki
1. URI
Uniform Resource Identifier 统一资源标识符
用来标识网络上的一个资源,是资源识别的最普适的方案
2. URL
Uniform Resource Location 统一资源定位符
用来标识网络上的一个资源,使用资源在网络上位置来唯一标识该资源
也是一个普适的概念
下面都是合法的的URL:
- http://z.diaox2.com/view/app/show/1
- ftp://ftp.lots-o-books.com/pub/complete-price-list.xls
- rtsp://www.joes-hardware.com:554/interview/cto_video
URL由6部分(事实上还可以有其他部分,但是绝大多数人可能一辈子都遇不到这种URL)组成:
- scheme(该URL使用的协议,大小写无关)
- host
- port(HTTP的默认端口为80,其他各个协议也有相应的默认端口)
- path
- query
- hash
上述所谓的“部分”也称之为"组件"
注意:Nodejs中的url模块的parse方法返回的既有host又有hostname,host为带端口的hostname
比如:http://z.diaox2.com:3001/show/?id=1
host:z.diaox2.com:3001
hostname: z.diaox2.com
3. 两者的关系
URI是URL的父集,URI包括两部分:URL和URN;
现在,几乎所有的URI都是URL!所以导致两者常常混淆
HTTP应用程序,例如浏览器,处理的只是URI的URL子集