網址有哪些部分?

在多數情況下,即使不是嚴格內容,也還是可以說「我購買了網域」或「我們的圖片是儲存在不同的網站」等。然而,在某些情況下必須更加精確。舉例來說,處理 Cookie 時,您需要瞭解「網站」和「來源」之間的差異。

網址部分的名稱是在標準中指定,其也會定義 JavaScript API:

  • 網址標準會定義網址和相關概念,讓工程師建構能互通的網路瀏覽器。
  • 標準的 URL API 元件會定義各種方法來提供網址字串部分的存取權,例如配置來源

本文件說明與 HTTP 或 HTTPS 網址字串搭配使用的一系列術語。本文未涵蓋其他類型的網址,例如檔案或資料網址。以 hostorigin 等術語來說,準確的定義本身就很複雜,因此本文件會提供網址標準的範例和連結,而非嘗試完整說明。

您可以使用 JavaScript 取得 URL 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 等瀏覽器會在建構中使用這份清單。

eTLD+1

請參閱可註冊的網域

「eTLD」eTLD和位於其前的子網域。

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

檔案名稱

未在網址標準中定義,而非網址 API 的一部分,但常用於表示網址的最終非路徑部分 (假設網址可直接對應至目錄結構),而此部分通常是因為網址有誤而被排除。

舉例來說,使用 https://example.com/dir/file.html 時,file.html 可能稱為檔案名稱。

如果所下載素材資源,瀏覽器也會使用檔案名稱值來命名素材資源。 舉例來說,https://example.com/images/image.jpg 通常會儲存在本機的 image.jpg 中。

Fragment

提供片段 ID 的網址結尾 # 字元後的字串。

  • 例如:網址 https://example.com/cats#tabby 的片段 ID 值為 tabby

包含 # 的部分稱為雜湊或錨點。您也可以連結至並醒目顯示文字片段

雜湊是由網址 API 傳回,而非片段。

完整網域名稱 (FQDN)

網站或伺服器的完整位址,可對應至 IP 位址

網址 FQDN
https://example.com:1234/cats example.com
https://api.example.github.io api.example.github.io

即使使用非預設通訊埠,網址的 FQDN 也不會包含通訊埠

雜湊 (或錨點)

在網址結尾由 # 字元後的字串,系統會提供片段 ID (在部分情境中,這稱為「錨點」)。

排除 # 的部分稱為片段。您也可以連結至並醒目顯示文字片段

雜湊是由網址 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 會傳回不含 porthost

網址 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

「Path」有時用來表示不含檔案名稱的路徑名稱。以 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 可透過 URL API 使用,但 scheme 不是。

查詢 (或「查詢字串」)

網址的「搜尋」部分 (不含開頭的 ?),

可註冊的網域

  • 如果網址包含單一部分 eTLD,例如 comorg (例如與 TLD 對應的 eTLD)、網域和第二層網域 (例如 example.comexample.org)。
  • 如果網址包含兩個部分 eTLD,而且只允許進行第三層註冊 (也就是公開尾碼清單中的項目,例如 com.augithub.io),兩個部分的頂層網域 (「公開尾碼」) 以及第三部分頂層網域名稱。例如 example.org.auexample.github.io
  • 如為包含三個以上部分的 eTLD,則是指 eTLD 和網域之前的 eTLD。

架構

網址中 (:// 之前) 的部分,用於定義在對網址提出要求時,用來定義網路通訊協定 (或使用者代理程式要執行的動作)。舉例來說,對採用 https 配置的網址提出要求時應使用 HTTPS 通訊協定。假如要求向網址採用的配置不對應網路通訊協定,例如 filemailtogit,則行為取決於使用者代理程式。舉例來說,當使用者點選 mailto 連結時,大多數的瀏覽器都會使用連結的 href 網址中的值開啟預設電子郵件應用程式。

問號後面加上一系列代表參數及其值的鍵/值組合 (在「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.auorg.au 的子網域。

網站

網站是由 HTML 標準定義,以及相同網站 (包含配置無配置的相同網站)。

網址標準或 JavaScript URL API 中未定義網站。

在這個情境中:

  • 如果 HTTP 或 HTTPS 網址只有部分 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
網址 網站 (採用配置和 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 的子網域。

文字片段

一種片段,可讓系統連結並醒目顯示頁面上的一段文字。當使用者透過文字片段追蹤連結時,瀏覽器會嘗試尋找、捲動並醒目顯示網頁上的文字。

文字片段的開頭是 :~:text=,後面接著搜尋字詞。

舉例來說,如要連結至本頁面中第一次出現「Fragment」文字的情況,請使用網址 https://web.dev/articles/url-parts#:~:text=fragment

進一步瞭解文字片段

頂層網域 (TLD)

列在根區域資料庫中的網域名稱,例如 comorg。部分頂層網域為「國家/地區代碼頂層網域」,例如 uktv

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


瞭解詳情