网址的组成部分有哪些?

大多数情况下,您可以这样说:“我购买了域名”或“我们的图片 托管于不同的网站上”,即使这不是绝对的。不过,在 对于一些上下文,有必要进行更精确的定位。例如,处理 Cookie,则需要了解“网站”和“来源”之间的区别。

网址部分的名称以标准方式指定,该标准也定义了 JavaScript API:

  • 网址标准定义了网址以及 概念,帮助工程师构建可互操作的网络浏览器。
  • 网址 API 组件 定义了一些方法,以便用户访问网址字符串的某些部分, 例如 schemeorigin

本文档介绍了 HTTP 或 HTTPS 网址字符串中使用的一系列术语。它 不涵盖其他类型的网址,例如文件或数据网址。对于诸如 hostorigin,准确的定义本质上很复杂,因此 文档提供了指向网址标准(而非 尝试进行完整解释。

您可以使用 JavaScript 获取由 网址 API例如:

let url = new URL('https://foo.com.au:1234/bar/foo.html#bar');
console.log(url);

网址分析器

修改以下网址,了解网址字符串各部分的命名方式。 您也可访问以下网址,在单独的标签页中打开此文件: url-parts.glitch.me.


下面按字母顺序列出了各个网址部分的名称。

国家/地区代码顶级域名 (ccTLD)

ISO 3166-1 国家/地区代码列表中定义的顶级域名

  • 对于 https://example.org.au,ccTLD 为 au
  • 对于 https://example.io,ccTLD 为 io

域名

HTTP 或 HTTPS 网址中用点分隔的部分: 架构,但在 pathport 之前 (如果已指定)。域名的每个部分都称为“标签”。

网址 域名
https://example.github.io/path example.github.io
https://support.example.org.au:443 support.example.org.au

有效的顶级域名 (eTLD)

公共后缀列表中的一个条目,包括 TLD 及(对于包含多个部分的 eTLD)下方的其他域名: 例如“第二级”、“第三级”等等

  • 例如:comcom.augithub.iosa.edu.auschools.nsw.edu.au

如这些示例所示,“公共后缀”是域名, 。公共后缀列表是所有已知公共后缀的列表,而 会经常更新浏览器,包括 ChromiumFirefox 在他们的 build 中使用该列表。

eTLD+1

请参阅可注册域名

eTLD 及其前面的子网域。eTLD

  • 例如:example.comexample.org.auexample.github.ioexample.sa.edu.auexample.schools.nsw.edu.au

文件名

未在网址标准中定义,也不是网址 API 的一部分,但常用的定义 是指网址中的最终、非路径、 通常不正确的假设,即假设网址直接映射到 结构。

例如,对于 https://example.com/dir/file.htmlfile.html 可能是文件名。

如果已下载资源,浏览器也会使用文件名值来命名资源。 例如,系统通常会保存 https://example.com/images/image.jpg 本地发送到 image.jpg

Fragment

网址末尾的 # 字符后的字符串,用于提供 fragment 标识符

  • 例如:网址 https://example.com/cats#tabby 包含片段 标识符值 tabby
。 <ph type="x-smartling-placeholder">

包含 # 的部分称为哈希或锚点。 您还可以链接到并突出显示文本片段

哈希值是由 网址 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 会返回 schemehostport(除非端口是默认端口) )。

网址 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(例如 comorg,即 与 TLD 对应的 eTLD)、域名和 第二级域名,例如 example.comexample.org
  • 对于具有两部分 eTLD 且仅进行第三级注册的网址 (即公共后缀列表中的条目,例如 com.augithub.io) 两部分顶级域名(“公共后缀”)和第三级域名 。例如:example.org.auexample.github.io
  • 对于包含三个或更多部分的 eTLD,即是 eTLD 及其前面的域名。
。 <ph type="x-smartling-placeholder">

方案

网址中用于指定网络协议(或要执行的操作)的部分(位于 :// 之前) (由用户代理发送)。例如,向 采用 https 架构的网址应使用 HTTPS 协议创建。对于包含架构的网址的请求 例如,filemailtogit 则行为取决于用户代理。例如,当用户点击 大多数浏览器都使用 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=tabbymood=bonkers

二级域名

位于顶级域名之前的域名。

  • 对于网址 https://www.example.com,二级域名为 example.com,顶级网域 com子网域

  • https://example.org.au 的顶级域名为 au,即二级域名 域名为 org,第三级域名为 example。在此示例中 org.auau 的子域名,而 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.ukgithub.iosa.edu.au), “网站”由 schemeeTLD 和其前面的标签组成。 例如:对于网址 https://cat.example.co.uk/tabby,网站为 https://example.co.ukhttps://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”)

origin 不同,网站不包含 port

子网域

较高级别网域中的网域。

对于由单个顶级域名(例如 comorg)构成的网站,其中的部分 前,每个域名以英文句点分隔。

  • www.example.comexample.com 的子域名。
  • support.api.example.orgapi.example.org 的子网域,该子网域 example.org 的子网域。

对于仅允许第三级注册的两部分 eTLD(即 位于公共后缀列表中,例如 co.ukgithub.io)后,子域名是域名之前的一部分。

  • 例如:cat.example.co.ukexample.co.uk 的子域名。

文本片段

一种 fragment,可让您链接到并突出显示 网页中的一系列文本当用户点击含有文本片段的链接时, 浏览器会尝试在网页中定位、滚动至并突出显示文字。

文本片段以 :~:text= 开头,后跟搜索字词。

例如,要链接到文本“fragment”的首次出现, 请使用网址 https://web.dev/articles/url-parts#:~:text=fragment

如需了解详情,请参阅文本片段

顶级域名 (TLD)

根区数据库中列出的域名,例如 comorg。一些顶级域名 国家/地区代码顶级域名,例如 uktv

在描述 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


了解详情