URI
全称为(Uniform Resource Identifier), 也就是统一资源标识符,它的作用很简单,就是区分互联网上不同的资源。
例子:http://user:pass@www.example.jp:80/dir/index.html?uid=1#ch1
协议方案名http: 》登录信息user:pass》 服务器地址www.example.jp 》服务器端口号》80》带层次文件路径/dir/index.html》查询字符串uid=1》片段标识符#ch1
可能你会有疑问,好像跟平时见到的不太一样啊!先别急,我们来一一拆解。
scheme 表示协议名,比如http, https, file等等。后面必须和://连在一起。
user:passwd@ 表示登录主机时的用户信息,不过很不安全,不推荐使用,也不常用。
host:port表示主机名和端口。
path表示请求路径,标记资源所在位置。
query表示查询参数,为key=val这种形式,多个键值对之间用&隔开。
fragment表示 URI 所定位的资源内的一个锚点,浏览器可以根据这个锚点跳转到对应的位置。
URI编码只能用ASCII,ascii之外的字符不支持,而且还有一部分符号是界定符,如果不加以处理就会导致解析出错。
URL
URL是URI的一个子集。它是Uniform Resource Locator的缩写,译为“统一资源定位 符”
URN
URN也是URI的一个子集uniform resource name,统一资源命名
URI和URL区别
URI是一种语义上的抽象概念,可以是绝对的,也可以是相对的,而URL则必须提供足够的信息来定位,所以,是绝对的,而通常说的relative URL,则是针对另一个absolute URL,本质上还是绝对的。