大多数情况下,您可以这样说:“我购买了域名”或“我们的图片 托管于不同的网站上”,即使这不是绝对的。不过,在 对于一些上下文,有必要进行更精确的定位。例如,处理 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 网址中用点分隔的部分: 架构,但在 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 及其前面的子网域。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
网址末尾的 # 字符后的字符串,用于提供 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 identifier。(在 某些情境 这称为“锚点”。)
排除 #
的部分称为 fragment。
您还可以链接到并突出显示文本片段。
哈希值是由 网址 API 而不是片段返回的。
主机
如网址标准中所述,主机可以是 域名、IP v4 地址、IPv6 地址、不透明主机或为空 主机。
- 网址标准中对
host
的定义不包含端口。 URL.host
包含 端口(除非该端口是 scheme 的默认端口)。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
会返回 scheme、host 和 port(除非端口是默认端口)
)。
网址 | 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 网址,域名和端口(如果已定义)后面的部分是 包含 filename(如果已定义),但不包含 搜索字符串或哈希。
网址 | 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
,“path”
为 /cat/pattern
。
端口
网址中 :
后面的数字,用于标识网络端口。例如:
网址 https://example.com:1234/tabby
,端口号为 1234。
端口号必须是 16 位无符号整数,即一个整数 介于 0 和 65535(含)之间。
对于 HTTP 网址,默认端口为 80;则默认值为 443。网址 无需指定端口号,除非使用了非默认端口。
如果该端口是 scheme 的默认端口,则 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
网址中的值。
搜索
一个问号,后跟一系列表示 parameters 及其值,在 pathname 后面提供。
网址 | 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
。
网站
网站由 以及same-site 包含 scheme,以及 同网站无传输协议。
网站未在网址标准或 JavaScript 网址 API 中定义。
在这种情况下:
- 对于包含单部分 eTLD(例如
https://example.com
,该网站由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 网址的各个部分时,顶级域名是域名 最后一个句点之后的点
- 对于
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
。
了解详情
- 内容 - 网址生活标准
- 内容 - HTML 生活标准
- 网址 API
- 了解“same-site”和“same-origin”
- RFC:统一资源定位符(网址)
- RFC:URI、网址和 URN
- 根区数据库( TLD)
- 公共后缀列表(eTLDs 目录:“公共后缀是串联的一组 DNS 名称或通配符) 和圆点它代表域名不属于 个人注册者的控制权。”)
- ICANN 词汇表
- 什么是完全限定域名?
- 您可以通过多少种方式来分割网址并为各个部分命名?
- MDN 网页文档术语表
- 什么是网址?
- 网址的历史记录