URI 之 粗略讲解
I don't know why, but all I want right now is sex.
URI本质上是一个字符串,这个字符串的作用是唯一地标记资源的位置或者名字。
它不仅能够标记万维网的资源,也可以标记其他的,如邮件系统、本地文件系统等任意资源。而“资源”既可以是存在磁盘上的静态文本、页面数据,也可以是由Java、PHP提供的动态服务。
下面的这张图显示了URI最常用的形式,由scheme、host:port、path和query四个部分组成,但有的部分可以视情况省略。
URI 基本组成部分
1、scheme:方案名或者叫协议名,表示该资源应该使用哪种协议来访问
我们常见的有http,表示使用的是http协议。另外还有https,表示使用经过加密,安全的HTTPS协议。还有不常用的scheme,如ftp,ldap,file,news 等
2、:// 组成部分 当初设计者设计的
3、authority 部分 表示资源所在的主机名 通常的形式是“host:port”,即主机名加端口号。
主机名可以是IP地址或者域名的形式,必须要有,否则浏览器就会找不到服务器。但端口号有时可以省略,浏览器等客户端会依据scheme使用默认的端口号,例如HTTP的默认端口号是80,HTTPS的默认端口号是443。
4、path 标记资源所在位置的path
5、参数部分
URI的完整格式
#fragment 表示页面的锚点或者标签
URI的编码
前面的举的例子,都是使用的ASCII码,如果使用英语以外的,比如汉语,或者特服符号,又会咋样?
URI引入了编码机制,对于ASCII码以外的字符集和特殊字符做一个特殊的操作,把它们转换成与URI语义不冲突的形式。这在RFC规范里称为“escape”和“unescape”,俗称“转义”