大多數情況下,就算這樣並不嚴格不過,在某些情況下,您需要更精確地指定。舉例來說,在處理 Cookie 時,您需要瞭解「網站」和「來源」的差異。
網址部分的名稱會在標準中指定,該標準也會定義 JavaScript API:
本文將說明 HTTP 或 HTTPS 網址字串中使用的各種術語。但不涵蓋其他類型的網址,例如檔案或資料網址。對於 host
和 origin
等術語,準確的定義本身就很複雜,因此本文件僅提供示例和網址標準的連結,而非嘗試提供完整的說明。
您可以使用 JavaScript 取得 URL 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 在內的瀏覽器會在建構中使用這份清單。
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
。
片段
網址結尾的 # 字元後方,提供片段 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 的網址結尾 # 字元後面的字串 (在某些情境中,稱為「錨點」)。
不含 #
的部分稱為「片段」。你也可以連結及醒目顯示文字片段。
雜湊是由 URL 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 網址,則網域和通訊埠 (如已定義) 之後的部分,包括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 |
有時會使用「Path」來指稱不含檔案名稱的路徑名稱。例如,對於網址 https://example.com/cat/pattern/tabby.html
,"path" 為 /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 |
通訊協定
scheme 後面接著 :
(例如 http:
或 https:
)。
protocol
可透過 URL API 取得,但 scheme
則無法。
查詢 (或「查詢字串」)
網址的 search 部分 (不含開頭的 ?
)。
可註冊的網域
- 如果網址中含有單一部分的 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
網址中的值,開啟預設的電子郵件應用程式。
搜尋
問號後方的一連串鍵/值組合,代表參數及其值 (位於「路徑名稱」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
的子網域。
網站
網站是由 HTML 標準定義,以及同網站 (包含配置文件) 和無配置文件的同網站。
網址標準或 JavaScript 網址 API 中未定義網站。
在這個情況下:
- 如果 HTTP 或 HTTPS 網址有單一部分 eTLD (例如
https://example.com
),網站則由scheme
、eTLD 和標籤組成。例如:如果網址為https://www.example.com/cat
,則網站為https://example.com
。(對於這個網址,eTLD 與頂層網域相同)。 - 對於
co.uk
、github.io
或sa.edu.au
等多部分 eTLD,"site" 包含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
的子網域。
文字片段
一種片段,可讓系統連結至並醒目顯示頁面上的某段文字。當使用者點選含有文字片段的連結時,瀏覽器會嘗試定位、捲動至網頁中的文字,並加以醒目顯示。
文字片段開頭為 :~: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
,也是頂層網域。
使用者名稱
網址開頭可以提供選填的使用者名稱和密碼,但基於安全考量,已淘汰,在許多情況下會遭到忽略。
舉例來說,如果使用 https://user123:password1@example.com
,使用者名稱就是 user123
。請注意,使用者名稱 (和密碼) 是純文字,並未加密。如果使用者名稱包含 :
或 @
符號,則必須分別將其網址編碼為 %3A
和 %40
。
瞭解詳情
- WHATWG:URL Living 標準
- WHATWG:HTML Living Standard
- URL API
- 瞭解「同網站」和「同來源」
- RFC:統一資源定位器 (URL)
- RFC:URI、URL 和 URN
- 根可用區資料庫 (TLD 的目錄)
- 公開後置字串清單 (「eTLD」的目錄eTLDs:「公開字尾是一組 DNS 名稱或萬用字元,以半形句號串連)。代表網域名稱中不受個別註冊者控管的部分。」)
- ICANN 詞彙解釋
- 什麼是完整網域名稱?
- 您可以以幾種方式切割網址並命名?
- MDN 網路文件字典
- 什麼是網址?
- 網址的瀏覽記錄