What is URL???
一、什么是 URL?
URL(Uniform Resource Locator),中文称为统一资源定位符,也就是我们平时所说的网址。
URL 的作用是唯一标识互联网中某个资源的位置,浏览器根据 URL 可以找到对应的网页、图片、视频、文件等资源。
例如:
texthttps://www.example.comhttps://www.wikipedia.org/wiki/URLhttps://chat.openai.com
二、URL 的组成
一个完整的 URL 通常由以下几部分组成:
texthttps://www.example.com:443/folder/page.html?id=123#section1│ │ │ │ │ ││ │ │ │ │ └── 锚点(Fragment)│ │ │ │ └──────── 查询参数(Query)│ │ │ └────────────────────────── 路径(Path)│ │ └────────────────────────────── 端口(Port)│ └────────────────────────────────────────────── 域名(Domain)└───────────────────────────────────────────────────── 协议(Protocol)
1、协议(Protocol)
协议决定浏览器与服务器如何通信。
常见协议:
| 协议 | 说明 |
|---|---|
| HTTP | 超文本传输协议,不加密 |
| HTTPS | 安全版 HTTP,数据经过 SSL/TLS 加密 |
| FTP | 文件传输协议 |
| File | 本地文件协议 |
示例:
texthttps://http://ftp://file://
现在绝大多数网站都使用 HTTPS。
2、域名(Domain)
域名就是网站的名字,用来定位服务器。
例如:
textwww.baidu.comwww.google.comwww.github.com
浏览器访问时,会先通过 DNS(域名解析系统) 将域名转换成 IP 地址,然后连接服务器。
例如:
textwww.baidu.com ↓DNS 解析 ↓110.242.68.xxx(IP地址)
3、端口(Port)
端口表示服务器提供服务的入口。
格式:
text:端口号
例如:
texthttps://localhost:8080
常见端口:
| 端口 | 服务 |
|---|---|
| 80 | HTTP |
| 443 | HTTPS |
| 21 | FTP |
| 22 | SSH |
| 3306 | MySQL |
| 6379 | Redis |
| 8080 | Spring Boot 常用端口 |
如果使用默认端口,可以省略:
texthttps://www.baidu.com
实际上等价于:
texthttps://www.baidu.com:443
4、路径(Path)
路径表示服务器上的具体资源位置。
例如:
texthttps://example.com/news/index.html
其中:
text/news/index.html
就是路径。
路径可以表示:
- HTML 页面
- 图片
- 视频
- 接口(API)
- 文件
例如:
text/images/logo.png /api/user /download/test.zip
5、查询参数(Query)
查询参数用于向服务器传递数据。
格式:
text?参数1=值1&参数2=值2
例如:
texthttps://www.baidu.com/s?wd=ChatGPT
其中:
textwd=ChatGPT
表示:
- 参数名:wd
- 参数值:ChatGPT
多个参数:
texthttps://example.com/search?name=Tom&age=20&city=Beijing
参数解析:
| 参数 | 值 |
|---|---|
| name | Tom |
| age | 20 |
| city | Beijing |
多个参数之间使用:
text&
连接。
6、锚点(Fragment)
锚点用于定位网页中的某一部分内容。
格式:
text#锚点名称
例如:
texthttps://example.com/index.html#chapter3
浏览器打开网页后,会自动滚动到:
textchapter3
对应的位置。
锚点不会发送到服务器,仅在浏览器中生效。
三、一个完整 URL 示例
texthttps://www.example.com:443/product/list?id=100&page=2#comment
拆解如下:
| 部分 | 内容 |
|---|---|
| 协议 | https |
| 域名 | www.example.com |
| 端口 | 443 |
| 路径 | /product/list |
| 查询参数 | id=100&page=2 |
| 锚点 | comment |
四、URL 的访问流程
当浏览器输入一个 URL 后,会经历以下过程:
text输入 URL │ ▼解析协议(HTTP/HTTPS) │ ▼DNS 解析域名 │ ▼获取服务器 IP 地址 │ ▼建立 TCP(HTTPS 还需 TLS)连接 │ ▼发送 HTTP 请求 │ ▼服务器处理请求 │ ▼返回 HTML/CSS/JS/图片等资源 │ ▼浏览器解析并渲染页面
五、URL 与 URI 的区别
很多人容易混淆 URL 和 URI。
URI(Uniform Resource Identifier)
中文:统一资源标识符
用于唯一标识一个资源。
例如:
textmailto:test@example.com
texturn:isbn:9787302511230
URL(Uniform Resource Locator)
URL 是 URI 的一种。
它不仅标识资源,还说明资源在哪里、如何访问。
例如:
texthttps://www.baidu.com
可以直接访问网页。
关系如下:
textURI│├── URL(定位资源)│└── URN(命名资源)
因此:
所有 URL 都是 URI,但并非所有 URI 都是 URL。
六、URL 与网址的区别
实际上二者几乎可以认为是同一个意思。
| 名称 | 说明 |
|---|---|
| URL | 专业术语(统一资源定位符) |
| 网址 | 日常通俗说法 |
例如:
texthttps://www.baidu.com
既可以称为:
- URL
- 网址
七、URL 编码(URL Encoding)
URL 中不能直接包含空格、中文等特殊字符,因此需要进行编码。
例如:
textChat GPT
编码后:
textChat%20GPT
中文:
text你好
编码后可能为:
text%E4%BD%A0%E5%A5%BD
常见编码:
| 字符 | 编码 |
|---|---|
| 空格 | %20 |
| ? | %3F |
| & | %26 |
| = | %3D |
| # | %23 |
八、生活中的理解(类比)
把互联网想象成一座城市:
| URL 部分 | 现实中的含义 |
|---|---|
| 域名 | 小区名称 |
| 路径 | 楼栋 + 房间号 |
| 查询参数 | 快递备注 |
| 协议 | 出行方式(汽车、高铁等) |
| URL | 完整家庭住址 |
例如:
texthttps://example.com/product?id=100
可以理解为:
text城市:互联网 小区:example.com 楼栋:product 备注:id=100
浏览器根据这个完整地址,就能够准确找到对应的资源。
九、面试高频问题
1. URL 是什么?
URL(Uniform Resource Locator)即统一资源定位符,用于唯一定位互联网中的资源,也就是我们常说的网址。
2. URL 有哪些组成部分?
- 协议(Protocol)
- 域名(Domain)
- 端口(Port)
- 路径(Path)
- 查询参数(Query)
- 锚点(Fragment)
3. HTTP 和 HTTPS 有什么区别?
- HTTP:明文传输,不安全,默认端口 80。
- HTTPS:基于 HTTP + SSL/TLS 加密,更安全,默认端口 443。
4. URL 和 URI 有什么区别?
- URI:统一资源标识符,用于标识资源。
- URL:统一资源定位符,是 URI 的一种,用于定位并访问资源。
5. 为什么浏览器输入域名就能访问网站?
因为浏览器会先通过 DNS 将域名解析成 IP 地址,然后与服务器建立连接,发送 HTTP 请求,最后获取网页资源并进行渲染。
十、总结
- URL(统一资源定位符)就是我们常说的网址。
- 一个完整 URL 包括:协议、域名、端口、路径、查询参数、锚点。
- 浏览器访问 URL 时,会经历 DNS 解析 → 建立连接 → 发送请求 → 接收响应 → 渲染页面 的过程。
- URL 是 URI 的一种,所有 URL 都是 URI,但 URI 不一定是 URL。
- 在 Web 开发中,理解 URL 的组成和请求流程,是学习 HTTP、Spring Boot、前后端分离、RESTful API 等技术的基础。

