《图解HTTP》学习记录三(URI与URL)
2016-10-14 本文已影响196人
Iswine
URI(Uniform Resource Identifier)和URL(Uniform Resource Locator)这两个概念在前面的学习中出现了很多次,但我一直没有理清两者的差别,现在来好好聊一聊。
URI是根据某个协议方案表示的资源定位符,协议方案指的是访问资源所访问的协议类别,http就是其中一种协议,此外,标准协议还有ftp,mailto,telnet,file等30多种。
URI和URL的差别在于identifer和locator上,identifer意为标记,即告诉你有这么一个东西名字叫做什么。而locator意为查询地址,它不仅能告诉你有一个东西叫什么,还能精确定位到具体位置。所以,URL是URI的子集,URI是以一种抽象的,高层次概念定义统一资源标识,而URL和URN则是具体的资源标识的方式。URI的子集除了URL以外,还有URN(Uniform Resource Name),但是并未大规模的应用场景。
所以,用URL来替代URI是毫无问题的。这是一个标准的URL结构:
- 协议方案名:http,ftp,file,mailto.....;
- 登录信息:如果网页需要认证时,需要填写该参数,所以是可选项。实际上,这种登录方式基本上不用,把账号密码写在URL不是等着别人来盗用么- -;
- 服务器地址:可以使IP地址形式,也可以是能被DNS解析为IP地址的域名形式;
- 端口号:指定服务器连接的端口号,也选填,若不填则指向本协议的默认端口号;
- 带层次的文件路径:获取资源在服务器中的具体地址;
- 查询字符串:针对已指定路径的资源,可使用查询字符串来获取想要的参数,此项也是可选项;
- 片段标识符:又名hash,来标记已获取资源中的子资源(在文档中的某个位置)。