在大多数情况下,您可以说“我购买了域名”或“我们的图片托管在其他网站上”,即使这并不是完全正确的。不过,在某些情况下,必须做到更精确。例如,在处理 Cookie 时,您需要了解网站和来源之间的区别。
网址部分的名称在标准中指定,该标准还定义了 JavaScript API:
本文档介绍了与 HTTP 或 HTTPS 网址字符串搭配使用的一系列术语。本文档不涵盖文件网址或数据网址等其他类型的网址。对于 host
和 origin
等术语,准确的定义本身就很复杂,因此本文档提供了示例和指向网址标准的链接,而不是尝试进行完整说明。
您可以使用 JavaScript 获取由网址 API 定义的网址组件的名称。例如:
let url = new URL('https://foo.com.au:1234/bar/foo.html#bar');
console.log(url);
网址分析器
修改以下网址,了解网址字符串的各个部分的命名方式。 您也可以在单独的标签页中打开此网址:url-parts.glitch.me。
网址部分的名称按字母顺序列在下方。
国家/地区代码顶级域名 (ccTLD)
域名
HTTP 或 HTTPS 网址中以点分隔的部分:架构后面、路径或端口(如果指定)前面的所有内容。域名的每个部分都称为“标签”。
网址 | 域名 |
---|---|
https://example.github.io/path | example.github.io |
https://support.example.org.au:443 | support.example.org.au |
有效的顶级域名 (eTLD)
公共后缀列表中的条目,包括 TLD 以及(对于包含多个部分的 eTLD)位于其下方的其他域名:二级域名、三级域名等。
- 例如:
com
、com.au
、github.io
、sa.edu.au
、schools.nsw.edu.au
。
“公共后缀”(如这些示例)是指可用于注册域名的名称。公共后缀列表包含所有已知的公共后缀,并且会经常更新。Chromium 和 Firefox 等浏览器都会在其 build 中使用该列表。
eTLD+1
请参阅可注册域名。
一个 eTLD 以及它前面的子网域。
- 例如:
example.com
、example.org.au
、example.github.io
、example.sa.edu.au
、example.schools.nsw.edu.au
。
文件名
未在网址标准中定义,也不是 网址 API 的一部分,但通常用于指代网址的最终非路径部分,该部分基于网址直接映射到目录结构的假设(通常不正确)。
例如,对于 https://example.com/dir/file.html
,file.html
可能被称为文件名。
如果下载了资源,浏览器还会使用文件名值为资源命名。例如,https://example.com/images/image.jpg
通常会本地保存到 image.jpg
。
Fragment
网址末尾 # 字符后面的字符串,用于提供片段标识符。
- 例如:网址
https://example.com/cats#tabby
的片段标识符值为tabby
。
包含 #
的部分称为 hash 或锚点。您还可以链接到并突出显示文本片段。
哈希由网址 API 而非 fragment 返回。
完全限定域名 (FQDN)
网站或服务器的完整地址,映射到 IP 地址。
网址 | FQDN |
---|---|
https://example.com:1234/cats | example.com |
https://api.example.github.io | api.example.github.io |
网址的 FQDN 不包含 port,即使使用了非默认端口也是如此。
哈希(或锚点)
网址末尾 # 字符后面的字符串,用于提供片段标识符。(在某些上下文中,这称为“锚点”。)
除 #
之外的部分称为fragment。您还可以链接到文本片段并突出显示该片段。
哈希值是由 网址 API 而不是片段返回的。
主机
如网址标准中所定义,主机可以是域名、IPv4 地址、IPv6 地址、不透明主机或空主机。
- 网址标准对
host
的定义不包括端口。 URL.host
包含该端口,除非该端口是该方案的默认端口。URL.hostname
不包含端口。
网址 | URL.host |
---|---|
https://www.example.com:443/cat |
www.example.com // 443 is the default port for the scheme
|
https://www.example.com:1234/cat | www.example.com:1234 |
https://cat.example.github.io | cat.example.github.io |
主机名
主机名由 JavaScript URL
API 定义,而非由网址标准定义。如需了解详情,请参阅主机表示法。
URL.hostname
会返回不带端口的主机。
网址 | URL.hostname |
---|---|
https://www.example.com:443/cat | www.example.com |
https://www.example.com:1234/cat | www.example.com |
https://cat.example.github.io | cat.example.github.io |
来源
网址标准定义了 origin
,并链接到 HTML 标准以提供背景信息。
对于 HTTP 或 HTTPS 网址,URL.origin
会返回架构、主机和端口(除非端口是该架构的默认端口)。
网址 | URL.origin |
---|---|
https://www.example.com:443/cat | https://www.example.com |
https://www.example.com:1234/cat | https://www.example.com:1234 |
https://cat.example.github.io | https://cat.example.github.io |
参数
请参阅搜索参数
密码
请参阅用户名。
路径名
对于 HTTP 或 HTTPS 网址,是域名和端口(如果已定义)后面的部分,包括文件名(如果已定义),但不包括搜索字符串或哈希。
网址 | URL.pathname |
---|---|
https://example.com | [empty string] |
https://example.com:8000/search?q=tabby | /search |
https://example.github.io/cat/pattern#tabby | /cat/pattern |
https://example.github.io/README.md | /README.md |
“路径”有时用于指不含文件名的路径名。例如,对于网址 https://example.com/cat/pattern/tabby.html
,“路径”为 /cat/pattern
。
端口
网址中 :
后面的数字,用于标识网络端口。例如,对于网址 https://example.com:1234/tabby
,端口号为 1234。
端口号必须是 16 位无符号整数,也就是说,介于 0 和 65535 之间的整数(包括这两个数值)。
对于 HTTP 网址,默认端口为 80;对于 HTTPS,默认端口为 443。网址无需指定端口号,除非使用非默认端口。
如果端口是架构的默认端口,则该 API 会返回空字符串。
网址 | URL.port |
---|---|
https://example.com | // empty string |
https://example.com:443/foo | // empty string: port is default for scheme |
https://www.example.com:1234/foo | 1234 |
协议
架构后跟 :
(例如 http:
或 https:
)。
protocol
可通过网址 API 获取,但 scheme
不可用。
查询(或“查询字符串”)
网址的搜索部分,不包括前面的 ?
。
可注册域名
- 对于包含单个部分 eTLD(例如
com
或org
,即与 TLD 对应的 eTLD)的网址,则为域名及其前面的二级域名:例如example.com
或example.org
。 - 对于包含由两部分组成的 eTLD 且仅允许注册第三级域名的网址(即公共后缀列表中的条目,例如
com.au
和github.io
),请使用由两部分组成的顶级域名(“公共后缀”)以及紧随其后的第三级域名。例如:example.org.au
或example.github.io
。 - 对于包含三个或更多部分的 eTLD,即是 eTLD 及其前面的域名。
方案
网址的一部分(位于 ://
之前),用于定义向网址发出请求时使用的网络协议(或用户代理要执行的操作)。例如,应使用 HTTPS 协议向采用 https
架构的网址发出请求。如果请求对采用 file
、mailto
或 git
等协议的网址不对应网络协议,则行为取决于用户代理。例如,当用户点击 mailto
链接时,大多数浏览器都会使用该链接的 href
网址中的值打开默认电子邮件应用。
搜索
网址 | URL.search |
---|---|
https://example.com/cats?pattern=tabby&mood=bonkers | ?pattern=tabby&mood=bonkers |
https://example.com/cats:443?pattern=tabby | ?pattern=tabby |
query
或“查询字符串”是指不含前导 ?
的 search
。
另请参阅搜索参数。
搜索参数
是指在搜索字符串(或“查询字符串”)中传递的数据项。
- 例如:对于
https://example.com/cats?pattern=tabby&mood=bonkers
,搜索字符串有两个参数:pattern=tabby
和mood=bonkers
。
二级域名
位于顶级域名之前的域名。
对于网址
https://www.example.com
,二级网域为example.com
,是顶级网域com
的子网域。对于
https://example.org.au
,顶级域名为au
,二级域名为org
,三级域名为example
。在此示例中,org.au
是au
的子网域,example.org.au
是org.au
的子网域。
网站
网站由 HTML 标准定义,以及同网站(包含协议)和无协议同网站。
网址标准或 JavaScript 网址 API 中未定义“网站”。
在这种情况下:
- 对于包含单部分 eTLD(例如
https://example.com
)的 HTTP 或 HTTPS 网址,相应网站由scheme
、eTLD 和该 eTLD 之前的标签组成。例如,对于网址https://www.example.com/cat
,网站为https://example.com
。(对于此网址,eTLD 与顶级域名相同。) - 对于多部分 eTLD(例如
co.uk
、github.io
或sa.edu.au
),“网站”由scheme
、eTLD 和前面的标签组成。例如:对于网址https://cat.example.co.uk/tabby
,网站是https://example.co.uk
;对于https://www.education.sa.gov.au
,网站是https://education.sa.gov.au
。
网址 | 网站(包含架构和 eTLD+1) |
---|---|
https://cat.example.com/tabby | ("https", "example.com") |
https://cat.example.co.uk/tabby | ("https", "example.co.uk") |
子网域
更高级别网域中的网域。
对于顶级域名只有一个部分(例如 com
或 org
)的网站,则为顶级域名之前的部分,每个部分之间用英文句点分隔。
www.example.com
是example.com
的子网域。support.api.example.org
是api.example.org
的子网域,而api.example.org
是example.org
的子网域。
对于仅允许注册第三级域名的两部分 eTLD(即公共后缀列表中的条目,例如 co.uk
和 github.io
),子网域是域名之前的部分。
- 例如:
cat.example.co.uk
是example.co.uk
的子网域。
文本片段
一种fragment,可用于链接到页面中的一段文本并将其突出显示。当用户点击包含文本片段的链接时,浏览器会尝试定位、滚动到并突出显示网页中的文本。
文本片段以 :~:text=
开头,后跟搜索字词。
例如,如需链接到此页面上“fragment”文本的首次出现,请使用网址 https://web.dev/articles/url-parts#:~:text=fragment
。
了解详情:文本 fragment。
顶级域名 (TLD)
根区域数据库中列出的域名,例如 com
或 org
。部分顶级域名是国家/地区代码顶级域名,例如 uk
和 tv
。
在描述 HTTP 或 HTTPS 网址的各个部分时,顶级域名是指最后一个点后面的域名。
- 对于
https://example.org
,网址的顶级域名为org
。 - 对于
https://example.org.au
,该网址的顶级域名为au
,且org
为二级域名(尽管org
也是顶级域名)。org.au
是一个由两部分组成的 eTLD。
eTLD 的公共后缀列表包含包含一个、两个或更多部分的域名,因此顶级域名也可以是 eTLD。例如:
- 对于
https://example.com
,网址的 eTLD 是com
,它也是一个 TLD。
用户名
您可以在网址开头提供用户名和密码(可选),但出于安全考虑,此做法已废弃,在许多情况下会被忽略。
例如,对于 https://user123:password1@example.com
,用户名为 user123
。请注意,用户名(和密码!)是明文,未加密。如果用户名包含 :
或 @
符号,则必须分别将其网址编码为 %3A
和 %40
。
了解详情
- WHATWG:网址活跃标准
- WHATWG:HTML Living Standard
- 网址 API
- 了解“同网站”和“同源”
- RFC:统一资源定位符 (URL)
- RFC:URI、网址和 URN
- 根区域数据库(顶级域名目录)
- 公共后缀列表(eTLDs):“公共后缀是一组与英文句点串联的 DNS 名称或通配符。它代表域名中不受个人注册者控制的部分。”
- ICANN 术语表
- 什么是完全限定域名?
- 您可以通过多少种方式对网址进行切片并为切片命名?
- MDN 网页文档术语表
- 什么是网址?
- 网址的历史记录