URL 语法
一、URL 语法建立的通用格式【由 9 部分构成】
1. 通用格式:
- 几乎没有哪个 URL 中包含了所有这些组件;
- URL 最重要的 3 个部分是方案(scheme) 、 主机(host)和路径(path);
<scheme>://<user>:<password>@<host>:<port>/<path>;<params>?<query>#<frag>
二、URL语法中:9 部分构成简介:
1. 方案——使用什么协议:
作用:
- 方案实际上是规定如何访问指定资源的主要标识符;
- 告诉负责解析 URL 的应用 程序应该使用什么协议;
- 方案组件必须以一个字母符号开始,由第一个“:”符号将其与 URL 的其余部分分 隔开来;
- 方案名是大小写无关的,因此 URL“http://www.joes-hardware.com”和 “HTTP://www.joes-hardware.com”是等价的;
2. 主机与端口 :
作用:提 供了这两组信息
- 哪台机器装载了资源;
- 在那台机 器的什么地方可以找到能对目标资源进行访问的服务器;
主机组件:
- 标识了因特网上能够访问资源的宿主机器;
- 可以用上述主机名(www.joeshardware.com),或者 IP 地址来表示主机名;
端口组件:
- 标识了服务器正在监听的网络端口。
- 对下层使用了 TCP 协议的 HTTP 来 说,默认端口号为 80
3. 用户和密码组件 :
简述:
- 很多服务器都要求输入用户名和密码才会允许用 户访问数据;
- FTP 服务器就是这样一个常见的实例;
例:
- 第一个例子没有用户或密码组件,只有标准的方案、主机和路径;
- 如果某应用程 序使用的 URL 方案要求输入用户名和密码,比如 FTP,但用户没有提供,它通常 会插入一个默认的用户名和密码;
- 第二个例子显示了一个指定为 anonymous 的用户名 ;字符“@*”*将用户和密码组件与 URL 的其余 部分分隔开来
- 第三个例子中,指定了用户名(anonymous)和密码(my_passwd),两者之间由 字符“:”分隔;
4. 路径 组件 :
简述:
- 路径组件说明了资源位于服务器的什么地方;
- 路径通常很像一个分级的文件 系统路径;
- 例子:
路径为 /seasonal/index-fall.html;
路径是服务器定位资源时所需的信息;
可以用字符“/”将 HTTP URL 的路 径组件划分成一些路径段(path segment)(还是与 UNIX 文件系统中的文件路径类 似)。每个路径段都有自己的参数(param)组件。
5. 参数 :
FTP 协议:
- 由字符“;”将其与 URL 的 其余部分(以及各名值对)分隔开来;
- 提供了访问资源所需的所有 附加信息;
如前所述,HTTP URL 的路径组件可以分成若干路径段。每段都可以有自己的参 数;
- 例子就有两个路径段,hammers 和 index.html。hammers 路径段有参数 sale,其值 为 false。
- index.html 段有参数 graphics,其值为 true
6. 查询字符串 【查询组件】 :
问号(?)右边的内容:
- 这部分被称为查询(query)组件;
- URL 的查询组件和标识网关资源的 URL 路径组件一起被发送给网关资源;
- 基本上可以将网关当作访问其他应用程序的 访问点;
图 2-2 中有一个作为 Joe 的五金商店清单查询应用程序的网关的服务器;
- 除了有些不合规则的字符需要特别处理之外,对查询组件的格 式没什么要求;
- 很多网关都希望查询字符串以一系列“名 / 值”对的形 式出现,名值对之间用字符“&”分隔;
7. 片段 组件:
简述:
- 有些资源类型,比如 HTML,除了资源级之外,还可以做进一步的划分;
- 比如,对 一个带有章节的大型文本文档来说,资源的 URL 会指向整个文本文档,但理想的情 况是,能够指定资源中的那些章节;
- 为了引用部分资源或资源的一个片段,URL 支持使用片段(frag)组件来表示一个 资源内部的片段;
- 片段挂在 URL 的右手边,最前面有一个字符“#”;
注意:
5. HTTP 服务器通常只处理整个对象;
6. 而不是对象的片段,客户端不能将片段传送给 服务器(参见图 2-3);
7. 浏览器从服务器获得了整个资源之后,会根据片段来显示你 感兴趣的那部分资源。