什么是 URL?
什么是 URL?
什么是 URL?
本文讨论了统一资源定位符(URL),并解释了它是什么,以及它的结构。
前提: 你首先需要知道互联网是如何工作的、什么是 Web 服务器,以及Web 中超链接的概念。
目标: 你将会学习到 URL 是什么,以及它在 Web 中是如何工作的。
概述
URL(统一资源定位符)是因特网中的唯一资源的地址。它是浏览器用于检索已发布资源(例如 HTML 页面、CSS 文档、图像等)的关键机制之一。
理论上说,每个有效的 URL 都指向一个唯一的资源。而在实际中,也有一些例外,最常见的情况就是一个 URL 指向了不存在的或是被移动过的资源。由于通过 URL 呈现的资源和 URL 本身由 Web 服务器处理,因此 Web 服务器的拥有者需要认真地维护资源以及与它关联的 URL。
基础:剖析 URL
下面是一些 URL 的示例:
https://developer.mozilla.org
https://developer.mozilla.org/zh-CN/docs/Learn/
https://developer.mozilla.org/zh-CN/search?q=URL
你可以将上面的这些网址输进你的浏览器地址栏来告诉浏览器加载相关联的资源(在这三个示例中为网页)。
URL 由不同的部分组成,其中一些是必须的,而另一些是可选的。最重要的部分以在下面的 URL 上高亮(详细信息在下面的各节中提供):
备注:你可以将 URL 视为普通的邮寄地址:方案(scheme)表示你想要使用的邮政服务,域名(domain name)就像是城市或城镇,端口(port)就像邮政编码;路径(path)表示你的邮件应该送到的建筑物;参数(parameter)表示额外的信息,例如建筑物中公寓的编号;最后,锚点(anchor)表示邮件的实际收信人。
备注:关于 URL 还有一些额外的部分和规则,但对于普通用户或 Web 开发人员来说并不相关。不用担心这些,你不需要了解它们来构建和使用功能完整的 URL。
方案
URL 的第一部分是方案(scheme),它表示浏览器必须使用的协议来请求资源(协议是计算机网络中交换或传输数据的一组方法)。通常对于网站,协议是 HTTPS 或 HTTP(它的非安全版本)。访问网页需要这两者之一,但浏览器还知道如何处理其他方案,比如
mailto:
(打开邮件客户端),所以如果你看到其他协议也不要感到惊讶。
权威
接下来是权威(authority),它与方案之间用字符模式
://
分隔。如果存在,权威会包括域(例如
)和端口(
80
),由冒号分隔:
- 域指示被请求的 Web 服务器。通常这是一个域名,但也可以使用IP 地址(但这很少见,因为它不太方便)。
- 端口指示用于访问 Web 服务器上资源的技术“门户”。如果 Web 服务器使用 HTTP 协议的标准端口(HTTP 为 80,HTTPS 为 443)来授予对其资源的访问权限,则通常会省略端口。否则,端口是强制的。
备注:方案和权威之间的分隔符是
://
。冒号将方案与 URL 的下一部分分隔开,而
//
表示 URL 的下一部分是权威。
不使用权威的 URL 示例之一是邮件客户端(
mailto:foobar
)。它包含方案,而不使用权威的部分。因此,冒号后没有跟着两个斜杠,并且只充当方案和邮件地址之间的分隔符。
资源路径
/path/to/myfile.html
是 Web 服务器上资源的路径。在 Web 的早期阶段,像这样的路径表示 Web 服务器上的物理文件位置。如今,它主要是由没有任何物理现实的 Web 服务器处理的抽象。
参数
?key1=value1&key2=value2
是提供给 Web 服务器的额外参数。这些参数是用
&
符号分隔的键/值对列表。在返回资源之前,Web 服务器可以使用这些参数来执行额外的操作。每个 Web 服务器都有自己关于参数的规则,唯一可靠的方式来知道特定 Web 服务器是否处理参数是通过询问 Web 服务器所有者。
锚点
#SomewhereInTheDocument
是资源本身的另一部分的锚点。锚点表示资源中的一种“书签”,给浏览器显示位于该“加书签”位置的内容的方向。例如,在 HTML 文档上,浏览器将滚动到定义锚点的位置;在视频或音频文档上,浏览器将尝试转到锚代表的时间。值得注意的是,#后面的部分(也称为片段标识符)不会随请求被发送到服务器。
如何使用 URL
可以直接在浏览器的地址栏里输入任何 URL,来获得后台的资源。但是这仅仅是冰山一角。
后续会再来讨论在 URL 中有着大量的使用的HTML语言:
- 创建到其他文档的链接,用
元素;
- 将文档与它的相关资源关联,用各种元素如
或