URL是因特网资源的标准化名称,URI是通用的资源标识符,URL是URI的子集,URL分三部分组成,比如我们访问一个网站http://www.jianshu.com/writer#/notebooks/13649415/notes/16981936
第一部分 (http)是URL的方案(scheme),方案可以告诉web客户端怎样访问资源,在这里说明URL使用的是HTTP协议。
第二部分(www.jianshu.com)表示的是服务器的位置。
第三部分(writer#/notebooks/13649415/notes/16981936)是资源路径,路径说明是请求的服务器上那个本地的资源。
URL语法
URL提供了一种定位因特网上任意资源的手段,但这些资源是可以通过各种不同的方案(比如HTTP、FTP、SMTP)来访问,因此URL语法会随着方案的不同而不同。
<scheme>://<user>:<password>@<host>:<port>/<path>:<params>?<query>#<frag>
scheme: 方案是如何访问指定资源的主要标识符,他会告诉负责解析URL应用程序应该使用什么协议。
host: 主机组件标识了因特网上能够访问资源的宿主机器,可以有主机名或者是IP地址来表示。
port: 端口标识了服务器正在监听的网络端口。默认端口号是80。
path: URL的路径组件说明了资源位于服务器的什么地方。
params: URL中通过协议参数来访问资源,比名值对列表,分号分割来进行访问。
query: 字符串是通过提问问题或进行查询来缩小请求资源类的范围。
frag: 为了引用部分资源或资源的一个片段,比如URL指定HTML文档中一个图片或一个小节。HTTP通常只处理整个对象,而不是对象的片段,客户端不能将片段传送给服务器。浏览器从服务器获取整个资源之后,会根据片段来显示你感兴趣的片段部分。
URL有两种,一种是绝对URL,一种是相对URL。
绝对URL包含了访问资源所需的全部信息。
相对URL不是完整的,要从相对URL中获取访问资源所需的全部信息,就必须相对另一个,被称为基础的URL进行解析。
完整的方案列表
HTTP:超文本传输协议方案,除了没有用户名和密码之外,与通用的URL格式相符如果省略了端口号,就默认为80.
HTTPS: 方案HTTPS与方案HTTP是一对。唯一的区别是HTTPS使用了网景的SSL,SSL为HTTP连接提供了端到端的加密机制。其语法跟HTTP相同,默认端口号是443。
mailto: Mailto URL指向的是E-mail地址,由于E-mail的行为与其他方案有所不同(它并不指向所有可以直接访问的对象),所以Mailto URL的格式与标准URL的格式也有所不同,
FTP: 文本传输协议URL可以用来从FTP服务器上下载或者上传文件,并获取FTP服务器上目录结构内容的列表。
在Web和URL出现之前就有FTP。Web应用程序将FTP作为一种数据访问方案使用。
RTSP,RTSPU: RTSP URL是可以通过实时流传输协议解析的音/视频媒体资源的标识符。RTSPU中的u表示他是使用UDP协议来获取资源的。
FILE: 方案file表示一台指定主机上可以访问的文件,个字段都遵循通用格式。如果省略了主机名,就默认为正在使用的URL的本地主机。
NEWS: 方案news是用来访问一些特定的文章或新闻组,他有一个很独特的性质: news URL 自身包含的信息不足以对资源进行定位。news URL 缺乏到何处获取资源的信息----没有提供主机名或机器名称。
TELNET: 方案Telnet用于访问交互式业务。他表示的并不是对象自身,而是可以通过Telnet协议访问的交互式应用程序。