URI

统一资源标识符 (URI) 用于识别 Web 上的“资源”。它们通常用作 HTTP 请求的目标,在这种情况下,URI 代表物理资源(如文档、照片、二进制数据等)的位置。URI 还可以用于触发除获取资源之外的其他行为,包括打开电子邮件客户端、发送短信或执行 JavaScript,当用于其他位置(如 HTML <a> 链接的 href)时也是如此。

URL 和 URN

URL

URI 最常见的形式是统一资源定位符 (URL),它被称为Web 地址

url
https://developer.mozilla.org
https://developer.mozilla.org/en-US/docs/Learn/
https://developer.mozilla.org/en-US/search?q=URL

任何这些 URL 都可以输入浏览器的地址栏,告诉它加载关联的页面(资源)。

URL 由不同的部分组成,有些是必需的,有些是可选的。一个更复杂的示例可能如下所示

url
http://www.example.com:80/path/to/myfile.html?key1=value1&key2=value2#SomewhereInTheDocument

URN

统一资源名称 (URN) 是一种 URI,它通过特定命名空间中的名称来标识资源。

url
urn:isbn:9780141036144
urn:ietf:rfc:7230

这两个 URN 对应于

  • 乔治·奥威尔撰写的书籍《一九八四》,
  • IETF 规范 7230,超文本传输协议 (HTTP/1.1):消息语法和路由。

统一资源标识符 (URI) 语法

我们将以下 URL 拆分为其组成部分

url
http://www.example.com:80/path/to/myfile.html?key1=value1&key2=value2#SomewhereInTheDocument

方案

Protocol

http:// 是 URL 的 方案,指示浏览器必须使用哪个协议。通常是 HTTP 协议或其安全版本 HTTPS。Web 需要这两个协议中的一个,但浏览器也知道如何处理其他协议,例如 mailto:(用于打开邮件客户端)或 ftp: 用于处理文件传输,因此如果您看到此类协议,不要感到惊讶。 方案 参考提供了最常见方案的列表,以及其中一些方案的文档。

在 HTML 内容中使用 URL 时,您通常只应使用其中一些 URL 方案。当引用子资源(即作为更大文档的一部分加载的文件)时,您只应使用 HTTP 和 HTTPS 方案。出于安全原因,浏览器越来越少地支持使用 FTP 加载子资源。

FTP 仍然可以接受在顶层(例如直接在浏览器的 URL 栏中键入,或链接的目标),尽管一些浏览器可能会将加载 FTP 内容委托给另一个应用程序。

授权

URI 授权 由用户信息(可选且通常未指定)、主机名和端口组成。

Domain Name

www.example.com 是 URI 的主机名,指示请求哪个 Web 服务器。在这里,我们使用域名。也可以直接使用 IP 地址,但由于它不太方便,因此很少这样做,除非服务器没有注册域名。

Port

:80 是 URL 的端口,指示用于访问 Web 服务器上资源的技术“网关”。如果 Web 服务器使用 HTTP 协议的标准端口(HTTP 为 80,HTTPS 为 443)授予对其资源的访问权限,则通常会省略它。否则,它是强制性的。

路径

Path to the file

/path/to/myfile.html 是 URL 的路径,指示 Web 服务器上资源的位置。在 Web 的早期,这是一个指向 Web 服务器上物理位置的实际目录路径。如今,Web 服务器通常将其抽象化为任意位置。

查询

Parameters

?key1=value1&key2=value2 是 URL 的查询,它是提供给 Web 服务器的额外参数。参数是键/值对的列表,以 ? 符号为前缀,并以 & 符号分隔。这些可用于提供有关正在请求的资源的更多上下文。每个资源位置可能具有关于参数的自己的规则,唯一可靠的方法是通过询问服务器所有者来了解特定参数是如何处理的,例如阅读其文档。

片段

Anchor

#SomewhereInTheDocument 是 URL 的 片段,它是一个指向资源本身的另一个部分的锚点。锚点代表资源内部的一种“书签”,为浏览器提供方向以显示位于该“书签”位置的内容。例如,在 HTML 文档上,浏览器将滚动到定义锚点的位置;在视频或音频文档上,浏览器将尝试转到锚点代表的时间。值得注意的是,# 之后的部分(也称为片段标识符)永远不会与请求一起发送到服务器。

有一个特殊的 文本片段 功能,允许您链接到通过其文本内容标识的网页的特定部分。

示例

url
https://developer.mozilla.org/en-US/docs/Learn
tel:+1-816-555-1212
[email protected]:mdn/browser-compat-data.git
ftp://example.org/resource.txt
urn:isbn:9780141036144
mailto:[email protected]

规范

规范
未知规范

另请参阅