语法
host
host:port
user@host
user@host:port
host-
主机通常是托管该资源的服务器的域名或 IP 地址。域名通过域名系统解析为 IP 地址。
port可选-
端口是一个数字,用于指示服务器监听请求的端口。该参数为可选项,默认值为 HTTP 的 80 端口和 HTTPS 的 443 端口。其他方案可能定义自己的默认值或强制要求填写该参数。
user可选-
用户是可选的,用于身份验证目的。它在 Web URI 中并不常见。
警告:不建议在 HTTP 网址中直接提供用户信息,因为这可能导致敏感信息泄露。请改用其他方法,如 HTTP 身份验证或会话 Cookie。有时,钓鱼网站会通过显示具有误导性的网址来欺骗用户,这些网址的“用户”部分看似是域名,这种攻击被称为语义 URL 攻击。
描述
考虑如下 URL:
http://www.example.com:80/path/to/myfile.html?key1=value1&key2=value2#SomewhereInTheDocument
该 URL 中的权威是 www.example.com:80,由主机名(具体而言是域名)和端口号组成。

www.example.com 是该统一资源标识符(URI)的主机名,用于指定请求访问的 Web 服务器。此处使用的是域名,但同样可以使用主机的 IP 地址。由于 IP 地址并不方便且难于记忆,因此通常会使用域名进行访问——除非该服务器未注册域名。

:80 是 URL 中的端口,表示访问 Web 服务器资源所使用的技术“入口”。当 Web 服务器使用 HTTP 协议的标准端口(HTTP 为 80,HTTPS 为 443)提供资源访问时,通常省略该端口号。否则则必须明确指定。
示例
https://developer.mozilla.org-
主机名为
developer.mozilla.org。未指定端口,但当使用https:访问时默认为 443。 http://localhost:8080-
主机名为
localhost,端口为8080。localhost是特殊的主机名,浏览器会将其解析为本地地址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部分才是真正的“用户”。
规范
| Specification |
|---|
| Unknown specification> # section-3.2> |