URI 許可權

URI 的許可權部分位於方案之後、路徑之前。它最多可以包含三個部分:使用者資訊、主機和埠。

語法

url
host
host:port
user@host
user@host:port
主機

主機通常是託管資源的伺服器的域名或 IP 地址。域名使用域名系統解析為 IP 地址。

port 可選

是一個數字,表示伺服器正在監聽請求的埠。它是可選的,對於 HTTP 預設為 80,對於 HTTPS 預設為 443。其他方案可能定義自己的預設值或將其設為必需。

user 可選

使用者是可選的,用於身份驗證目的。在 Web URI 中不常用。

警告:不建議直接在 HTTP URL 中提供使用者資訊,因為這可能會洩露敏感資訊。請使用其他方法,如 HTTP 身份驗證或會話 Cookie。有時,網路釣魚網站會透過顯示誤導性 URL 來欺騙使用者,這些 URL 的“使用者”部分看起來像域名,這被稱為語義 URL 攻擊

描述

考慮以下 URL

url
http://www.example.com:80/path/to/myfile.html?key1=value1&key2=value2#SomewhereInTheDocument

在這種情況下,許可權是 www.example.com:80,由主機名(特別是域名)和埠組成。

Domain Name

www.example.com 是 URI 的主機名,指示正在請求哪個 Web 伺服器。這裡我們使用域名,但也可以使用主機的IP 地址。由於 IP 地址不太方便且更難記住,因此通常使用域名,除非伺服器沒有註冊域名。

Port

:80 是 URL 的,指示用於訪問 Web 伺服器上資源的“技術入口”。如果 Web 伺服器使用 HTTP 協議的標準埠(HTTP 為 80,HTTPS 為 443)來授予對其資源的訪問許可權,則通常會省略它。否則,它是必需的。

示例

https://mdn.club.tw

主機是 developer.mozilla.org。埠未指定,但如果透過 https: 訪問,將預設為 443。

https://:8080

主機是 localhost,埠是 8080localhost 是一個特殊的**主機名**,瀏覽器會將其解析為本地地址 127.0.0.1

postgresql://postgres:admin123@db:5432

主機是 db,埠是 5432。它還指定了使用者 postgres 及其密碼 admin123。這可用於連線到 PostgreSQL 資料庫。

https://cnn.example.com&story=breaking_news@10.0.0.1

一個誤導性的 URL,看起來似乎指向一個受信任的網站。然而,主機名是 10.0.0.1,而 cnn.example.com&story=breaking_news 部分是“使用者”。

規範

規範
未知規範
# section-3.2

另見