大多数情况下,您可以提及“我购买了域名”或“我们的图片托管在其他网站上”之类的话,即使并非绝对正确也是如此。但在某些情况下,必须更精确。例如,在处理 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 网址中以英文句点分隔的部分:位于 scheme 之后、path 或 port(如果已指定)之前的所有内容。域名的每个部分称为一个标签。
网址 | 域名 |
---|---|
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
。
包含 #
的部分称为哈希或锚点。您还可以链接到并突出显示某个文本片段。
哈希值由网址 API 返回,而不是由片段返回。
完全限定域名 (FQDN)
网站或服务器的完整地址(映射到某个 IP 地址)。
网址 | FQDN |
---|---|
https://example.com:1234/cats | example.com |
https://api.example.github.io | api.example.github.io |
即使使用的是非默认端口,网址的 FQDN 也不包含 port。
哈希(或锚点)
网址末尾处跟着 # 字符的字符串,提供片段标识符(在某些上下文中,这称为“锚点”)。
排除 #
的部分称为 fragment。您还可以链接到并突出显示某个文本片段。
哈希值由网址 API 返回,而不是由片段返回。
主机
如网址标准中所定义,主机可以是域名、IP v4 地址、IPv6 地址、不透明主机或空主机。
- 网址标准对
host
的定义不包含 port。 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 |
参数
请参阅搜索参数
密码
请参阅 username。
路径名
对于 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 |
“Path”有时用于指代不带文件名的路径名。例如,对于网址 https://example.com/cat/pattern/tabby.html
,“路径”为 /cat/pattern
。
端口
网址中 :
后面的数字,用于标识网络端口。例如:对于网址 https://example.com:1234/tabby
,端口号为 1234。
端口号必须是 16 位无符号整数,也就是说,必须是 0 到 65,535 之间的整数(含 0 和 65,535)。
对于 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 |
协议
scheme 后跟 :
(例如 http:
或 https:
)。
protocol
可通过 网址 API 获取,但 scheme
不能。
查询(或“查询字符串”)
网址的搜索部分,不包括前导 ?
。
可注册域名
- 对于含有单个部分 eTLD(例如
com
或org
,即 eTLD,即与 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 和前面的标签。例如:对于网址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
。
网址 | 网站(包含 scheme 和 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
的子网域,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
。
如需了解详情,请参阅文本片段。
顶级域名 (TLD)
根区域数据库中列出的域名,例如 com
或 org
。某些顶级域名是国家/地区代码顶级域名,例如 uk
和 tv
。
在描述 HTTP 或 HTTPS 网址的各个部分时,TLD 是最后一个点之后的域名。
- 对于
https://example.org
,网址的顶级域名为org
。 - 对于
https://example.org.au
,网址的顶级域名为au
,org
是二级网域(即使org
也是顶级域名)。org.au
是一个由两部分组成的 eTLD。
eTLD 的公共后缀列表包含具有一个、两个或多个部分的域名,因此 TLD 也可以是 eTLD。例如:
- 对于
https://example.com
,网址的 eTLD 是com
,这也是一个 TLD。
用户名
您可以在网址的开头提供可选的用户名和密码,但出于安全考虑,已弃用,在很多情况下,系统会将其忽略。
例如,对于 https://user123:password1@example.com
,用户名为 user123
。请注意,用户名(和密码)采用纯文本形式,未加密。
如果用户名包含 :
或 @
符号,它们的网址必须分别编码为 %3A
和 %40
。
了解详情
- WHATWG:网址 Living Standard
- WHATWG:HTML 实际标准
- 网址 API
- 了解“同网站”和“同源”
- RFC:统一资源定位符(网址)
- RFC:URI、网址和 URN
- 根区域数据库(TLD 目录)
- 公共后缀列表(eTLD 的目录):“公共后缀是一组 DNS 名称或通配符(用英文句点连接在一起)。eTLDs它表示域名中不受单个注册者控制的部分。”)
- ICANN 术语表
- 什么是完全限定域名?
- 您可以通过多少种方式来分割网址和为各个部分命名?
- MDN Web 文档术语表
- 什么是网址?
- 网址的历史记录