标识互联网上的内容
HTTP 请求的内容通称为"资源"。”资源“这一概念非常宽泛,它可以是一份文档,一张图片,或所有其他你能够想到的格式。每个资源都由一个 (URI) 来进行标识。
一般情况下,资源的名称和位置由同一个 URL(统一资源定位符,它是 URI 的一种)来标识。也有某些特殊情况,资源的名称和位置由不同的 URI 进行标识:例如,待请求的资源希望客户端从另外一个位置访问它。我们可以使用一个特定的首部字段,Alt-Svc
,来指示这种情况。
URLs 与 URNs
URLs
URI 的最常见形式是统一资源定位符 (URL),它也被称为 Web 地址。
https://developer.mozilla.org https://developer.mozilla.org/zh-CN/docs/Learn/ https://developer.mozilla.org/zh-CN/search?q=URL
在浏览器的地址栏中输入上述任一地址,浏览器就会加载相应的网页(资源)。
URL 由多个必须或可选的组件构成。下面给出了一个复杂的 URL:
http://www.example.com:80/path/to/myfile.html?key1=value1&key2=value2#SomewhereInTheDocument
URNs
URN 是另一种形式的 URI,它通过特定命名空间中的唯一名称来标识资源。
urn:isbn:9780141036144 urn:ietf:rfc:7230
上面两个 URN 标识了下面的资源:
- 乔治·奥威尔所著的《1984》
- IETF 规范 7230,超文本传输 协议 (HTTP/1.1):Message Syntax and Routing.
统一资源标识符的语法 (URI)
方案或协议
-
-
http://
告诉浏览器使用何种协议。对于大部分 Web 资源,通常使用 HTTP 协议或其安全版本,HTTPS 协议。另外,浏览器也知道如何处理其他协议。例如,mailto:
协议指示浏览器打开邮件客户端;ftp:
协议指示浏览器处理文件传输。常见的方案有:
方案 | 描述 |
---|---|
data | Data URIs |
file | 指定主机上文件的名称 |
ftp | 文件传输协议 |
http/https | 超文本传输 协议/安全的超文本传输协议 |
mailto | 电子邮件地址 |
ssh | 安全 shell |
tel | 电话 |
urn | 统一资源名称 |
view-source | 资源的源代码 |
ws/wss | (加密的)WebSocket (en-US) 连接 |
主机
-
-
www.example.com
既是一个域名,也代表管理该域名的机构。它指示了需要向网络上的哪一台主机发起请求。当然,也可以直接向主机的 IP address 地址发起请求。但直接使用 IP 地址的场景并不常见。
端口
路径
查询
片段
示例
https://developer.mozilla.org/zh-CN/docs/Learn tel:+1-816-555-1212 git@github.com:mdn/browser-compat-data.git ftp://example.org/resource.txt urn:isbn:9780141036144
规范
Specification |
---|
HTTP Semantics # uri |