URL 与资源

2020/02/12 HTTP

http 权威指南中关于 URL 与资源 章节的总结学习。

HTTP 权威指南

第二章 URL 与资源

2.1 浏览因特网资源

URI 是一个通用的概念,有两个子集: URL 与 URN 组成。URL 是通过描述资源的位置来标识资源的,而 URN 是通过名字来识别资源的,与它们当前所处的位置无关。

URL 分以下三个部分:

示例 http://www.baidu.com/index.html

  • URL 的第一部分(http)是 URL 方案(scheme)。方案告知 Web 客户端怎样访问资源。此例中,URL 说明要使用 HTTP 协议
  • 第二部分(www.baidu.com) 指的是服务器的位置。这部分告知 Web 客户端资源位于何处
  • 第三部分(/index.html)是资源路径。路径说明了请求的是服务器上哪个特定的本地资源。

也就是 “方案://服务器位置/路径”结构。(大多数)

2.2 URL 的语法

大多数都由以下九部分构成:

<scheme>://<user>:<password>@<host>:<port>/<path>;<params>?<query>#<frag>

最重要的三部分是 方案(scheme) 、 主机(host)和路径(path)

通用 URL 组件

组件 描述 默认值 示例
方案 访问服务器以获取资源时要使用哪种协议 http
用户名 某些方案访问资源时需要的用户名 anonymous(匿名) ftp://anonymous:my_pw@ftp.prp.edu/pub/gnu
密码 用户名后面可能要包含密码,以 : 区分 如上的 my_pw
主机 资源宿主服务器的主机名或点分 IP 地址  
端口 资源宿主服务器正在监听的端口号。http 默认 80 每个方案特有  
路径 服务器上资源的本地名,有一个斜杠将其与前面的URL 组件分隔开。  
参数 某些方案会用这个组件来指定输入参数,相互之间以; 分隔  
查询 某些方案会用这个组件传递参数以激活应用程序。用字符? 将其与其他 URL 部分分隔开。键值对形式。每个查询之间以 & 分隔。 http://www.hdware.com/invetory?item=123&color=red
片段 一小片或一部分资源的名称。挂在 URL 的右手边,最前面有一个 # http://www.hdware.com/tools.html#drills

2.3 URL 快捷方式

相对 URL 是在某资源内部制定一个资源的便捷缩略方式。自动扩展 URL 是用户输入 RUL 的一个关键(可记忆的)部分,然后由浏览器将其余部分填充起来。

2.3.1 相对 URL

URL 有两种方式:绝对的和相对的。

相对 URL 是不完整的。要从相对 URL 中获取访问资源所需的全部信息,就必须相对于另一个被称为其 基础 (base)的 URL 进行解析。

http://www.hdware.com/index.html 的资源:

<!-- other part -->
<a href="./about.html">关于我们</a>
<!-- other part -->

这个 URL ./about.html ,就是相对 URL.

基础 URL 就是 http://www.hdware.com/index.html ,推导出的绝对 URL为:

http://www.hdware.com/about.html.

基础 URL 来自以下几个不同的地方:

  • 在资源中显式提供。 如 HTML 标记
  • 封装资源的基础 URL。如上例
  • 没有基础 URL。通常意味着有一个绝对 URL。

2.3.2 自动扩展 URL

有两种方式:

  • 主机名扩展
  • 历史扩展

2.4 令人头疼的字符

URL 是可移植的。

URL 还得是 完整的。

本节总结URL 的通用字母表和编码规则。

2.4.1 URL 字符集

使用 US-ASCII 字符集,使用7位二进制码来表示字符。 并且将 转义序列 集成进去。

2.4.2 编码机制

为了避开安全字符集表示法带来的限制,人们设计了一种编码机制,用来在 URL 中表示各种不安全的字符。编码机制就是通过一种“转义”表示法来表示不安全字符的。这种转义表示法包含一个百分号(%),后面跟着两个便是字符 ASCII 码的十六进制数。

例子:🌰

字符 ASCII 码 示例 URL
126(0x7E) http://www.hdware.com/%7Ejoe
空格 32(0x20) http://www.hdware.com/more%20tools.html
% 37(0x25) http://www.hdeare.com/100%25satis.html

2.4.3 字符限制

URL 中,有几个字符被保留起来,有着特殊的含义。

下表列出了一些字符,在将其用于保留用途之外的场合时,要在 URL 中对其进行编码。

TODO

2.5 方案的世界

常见的方案格式:

TODO

Search

    Table of Contents