Identifying resources on the Web

优质
小牛编辑
127浏览
2023-12-01

HTTP 请求的目标被称为“资源”,这个性质没有进一步定义; 它可以是文档,照片或其他任何东西。每个资源都由 HTTP 中用于标识资源的统一资源标识符(URI)标识。

Web 上资源的身份和位置主要由一个 URL(统一资源定位器,一种 URI)提供。有时候,原因是同一个 URI 没有给出身份和位置:Alt-Svc当请求的资源需要客户访问另一个位置时,HTTP 使用特定的 HTTP 头。

网址(URLs)和URN

网址(URLs)

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

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

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

一个 URL 由不同的部分组成,其中一些是强制性的,另一些是可选的。一个更复杂的例子可能是这样的:

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

URNs

统一资源名称(URN)是在特定名称空间中按名称标识资源的 URI。

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

两个 URN 相对应

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

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

计划或协议

http://是协议。它指示浏览器必须使用哪种协议。通常它是 HTTP 协议或其安全版本 HTTPS。Web 需要其中的一种,但浏览器也知道如何处理其他协议,如mailto:(打开邮件客户端)或ftp:处理文件传输,所以如果您看到这样的协议,请不要感到惊讶。常用的方案是:

方案

描述

数据 data

数据 URI

文件 file

主机特定的文件名

FTP

文件传输协议

HTTP / HTTPS

超文本传输协议(安全)

邮寄地址 mailto

电子邮件地址

SSH

安全的外壳

tel

电话

urn

统一资源名称

视图源

资源的源代码

ws / wss

(加密)WebSocket连接

权威

www.example.com是管辖命名空间的域名或权威。它指示正在请求哪个 Web 服务器。或者,可以直接使用 IP 地址,但由于它不太方便,因此不常用在 Web 上。

港口(出口或接口)

:80是这个实例中的端口。它表示用于访问 Web 服务器上资源的技术“门”。如果 Web 服务器使用 HTTP 协议的标准端口(HTTP 为80,HTTPS 为443)来授予其资源访问权限,通常会忽略它。否则它是强制性的。

路径

/path/to/myfile.html是 Web 服务器上资源的路径。在 Web 早期,这样的路径代表了 Web 服务器上的物理文件位置。如今,它主要是一个 Web 服务器处理的抽象,没有任何物理现实。

询问

?key1=value1&key2=value2是提供给 Web 服务器的额外参数。这些参数是用&符号分隔的键/值对列表。在将资源返回给用户之前,Web 服务器可以使用这些参数来执行额外的工作。每个 Web 服务器都有自己的参数规则,知道特定 Web 服务器如何处理参数的唯一可靠方法是询问 Web 服务器所有者。

分段

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

示例

https://developer.mozilla.org/en-US/docs/Learn
tel:+1-816-555-1212git@github.com:mdn/browser-compat-data.git
ftp://example.org/resource.txt
urn:isbn:9780141036144

产品规范

规范

标题

RFC 7230,第2.7节:统一资源标识符

超文本传输协议(HTTP / 1.1):消息语法和路由