作者:光陆光陆光陆 | 来源:互联网 | 2023-08-07 16:33
URL组件
大多数 URL 方案的 URL 语法都建立在这个由 9 部分构成的通用格式上:
://:@:/;?#
主机名
主机组件标识了因特网上能够访问资源的宿主机器。 可以用主机名, 或者IP地址来表示主机名。
比如, 下面两个URL就指向同一个资源——第一个URL是通过主机名, 第二个是通过 IP 地址指向服务器的:
- http://www.joes-hardware.com:80/index.html
- http://161.58.228.45:80/index.html
端口组件标识了服务器正在监听的网络端口。 对下层使用了 TCP 协议的 HTTP 来说, 默认端口号为 80。
路径
URL 的路径组件说明了资源位于服务器的什么地方。 路径通常很像一个分级的文件系统路径。 比如:
localhost:80/seasonal/index.html
这个 URL 中的路径为 /seasonal/index.html, 很像 UNIX 文件系统中的文件系统路径。
参数
为了向应用程序提供它们所需的输入参数, 以便正确地与服务器进行交互, URL 中有一个参数组件。 这个组件就是 URL 中的名值对列表, 由字符“;” 将其与 URL 的余部分(以及各名值对) 分隔开来。 它们为应用程序提供了访问资源所需的所有附加信息。 比如:
ftp://prep.ai.mit.edu/pub/gnu;type=d
在这个例子中, 有一个参数 type=d, 参数名为 type, 值为d。
查询字符串
例如上面的wd=word 表示在bing搜索中搜索的关键字是word。在这里看到的 & 符号,很多网关都希望查询字符串以一系列“名 / 值” 对的形式出现, 名值对之间用字符“&” 分隔,例如名 / 值对:q=word qs=n form=QBLH sp=-1
自动扩展URL
主机名扩展
在主机名扩展中, 只要有些小提示, 浏览器通常就可以在没有帮助的情况下, 将你输入的主机名扩展为完整的主机名
历史扩展
浏览器用来节省用户输入 URL 时间的另一种技巧是, 将以前用户访问过的 URL历史存储起来
URL字符
URL字符集
US-ASCII 使用 7 位二进制码来表示英文打字机提供的大多数按键和少数用于文本格式和硬件通知的不可打印控制字符。
有些 URL 中还会包含任意的二进制数据。 认识到对完整性的需求之后, URL的设计者就将转义序列集成了进去。 通过转义序列, 就可以用 US-ASCII 字符集的有限子集对任意字符值或数据进行编码了, 这样就实现了可移植性和完整性。
编码字符
字符限制
常见的方案格式
http | 超文本传输协议方案,除了没有用户名和密码之外,与通用的 URL 格式相符。如果省略了端口,就默认为 80。基本格式: http://:/?# |
https | 方案 https 与方案 http 是一对。唯一的区别在于方案 https 使用了网景的 SSL,SSL 为HTTP 连接提供了端到端的加密机制。其语法与 HTTP 的语法相同,默认端口为 443。基本格式: https://:/?# |
mailto | Mailto URL 指向的是 E-mail 地址。由于 E-mail 的行为与其他方案都有所不同(它并不指向任何可以直接访问的对象),所以 mailto URL 的格式与标准 URL 的格式也有所不同。因特网 E-mail 地址的语法记录在 RFC 822 中。基本格式: mailto: |
ftp | 文件传输协议 URL 可以用来从 FTP 服务器上下载或向其上载文件,并获取 FTP 服务器上的目录结构内容的列表。在 Web 和 URL 出现之前 FTP 就已经存在了。Web 应用程序将 FTP 作为一种数据访问方案使用。URL 语法遵循下列通用格式。基本格式: ftp://:@:/; |
rtsp,rtspu | RTSP URL 是可以通过实时流传输协议(Real Time Streaming Protocol)解析的音 / 视频媒体资源的标识符。 方案 rtspu 中的 u 表示它是使用 UDP 协议来获取资源的。基本格式: rtsp://:@:/ rtspu://:@:/ |
file | 方案 file 表示一台指定主机(通过本地磁盘、网络文件系统或其他一些文件共享系统)上可直接访问的文件。各字段都遵循通用格式。如果省略了主机名,就默认为正在使用URL 的本地主机。基本格式: file:/// |
news | 根据 RFC 1036 的定义,方案 news 用来访问一些特定的文章或新闻组。news URL 自身包含的信息不足以对资源进行定位。news URL 中缺乏到何处获取资源的信息——没有提供主机名或机器名称。 新闻资源可以从多台服务器中获得。它们被称为位置无关的,因为对它们的访问不依赖于任何一个源服务器。 news URL 中保留了字符“@”,用来区分指向新闻组的 news URL 和指向特定新闻文章的news URL。基本格式: news: news: |
telnet | 方案 telnet 用于访问交互式业务。它表示的并不是对象自身,而是可通过 telnet 协议访问的交互式应用程序(资源)。基本格式: telnet://:@:/ |
PURL?
永久统一资源定位符(persistent uniform resource locators, PURL)是用 URL 来实现 URN 功能的一个例子。 其基本思想是在搜索资源的过程中引入另一个中间层,通过一个中间资源定位符(resource locator) 服务器对资源的实际 URL 进行登记和跟踪。 客户端可以向定位符请求一个永久URL, 定位符可以以一个资源作为响应,将客户端重定向到资源当前实际的 URL 上去。