URL 到底是什么?把每个字段一次讲透

张开发
2026/4/10 10:20:17 15 分钟阅读

分享文章

URL 到底是什么?把每个字段一次讲透
URL 到底是什么把每个字段一次讲透你每天都在点链接但大多数人从来没有真正“读懂”过一条 URL。面试里、接口调试里、前后端联调里真正拉开差距的往往不是你会不会点浏览器而是你能不能一眼看穿这一串地址到底在表达什么。如果你也经常看到这样的地址就有点发懵https://user:passwww.example.com:8080/articles/2026/url-guide?frombloglangzh-CN#part-3那这篇文章就是写给你的。读完后你会真正弄明白这些问题https到底是什么www.example.com算域名还是网址:8080为什么有时出现、有时消失/articles/2026/url-guide和?fromblog到底有什么区别#part-3为什么点进去会直接跳到页面某个位置更重要的是你以后再看到一条 URL不会只觉得“这是一串网址”而是能立刻把它拆开、看懂、甚至自己拼出来。先看一眼URL 的完整结构先别急着背概念我们先看它的标准形态scheme://userinfohost:port/path?query#fragment把它翻译成人话就是scheme用什么协议访问userinfo访问时附带的用户信息可选host要访问哪台主机port这台主机上的哪个服务path具体访问哪个资源query额外携带哪些参数fragment页面内跳到哪个位置注意URL 不是每次都会把这些字段写全。真正常见的情况是userinfo、port、query、fragment都可能省略。一张“图”看懂 URL下面这张字段拆解图建议你先看一遍再往下读理解会快很多。https://user:passwww.example.com:8080/articles/2026/url-guide?frombloglangzh-CN#part-3 |----| |--------| |-------------| |--| |------------------------| |-------------------| |-----| scheme userinfo host port path query fragment如果你喜欢一句话记忆可以先记住这个顺序协议 - 主机 - 端口 - 路径 - 参数 - 定位URL 每个字段到底是什么意思下面我们用同一条 URL把每个字段彻底拆开https://user:passwww.example.com:8080/articles/2026/url-guide?frombloglangzh-CN#part-31.scheme协议这一段是https它决定了“你准备用什么规则访问资源”。最常见的协议有http超文本传输协议https在http基础上增加了加密更安全ftp文件传输协议file访问本地文件你可以把协议理解成“通行规则”。比如http://example.comhttps://example.com虽然访问的是同一个站点但协议不同通信规则也不同。今天大多数网站都会优先使用https因为它更安全。2.userinfo用户信息这一段是user:pass它出现在前面用来表示用户名和密码user:pass完整结构通常是username:password不过你平时在浏览器里很少见到它原因很简单把账号密码直接写进 URL 里并不安全。所以现代网站和接口通常不会这么用但作为 URL 的组成部分它确实存在。3.host主机名或域名这一段是www.example.com它表示“你要访问哪台主机”。常见形式有两种域名www.example.comIP 地址192.168.1.10很多人会把“URL”和“域名”混为一谈但其实不是一回事。URL 是完整地址域名只是 URL 里的一个字段比如这条https://www.example.com/news?id10其中真正的域名只有www.example.com4.port端口这一段是8080它写在主机后面用冒号连接:8080你可以把端口理解成“同一台机器上的不同服务入口”。比如同一台服务器上可能同时运行80端口HTTP 服务443端口HTTPS 服务3306端口MySQL 服务8080端口常见开发测试服务为什么有些 URL 没写端口因为很多协议有默认端口http默认是80https默认是443所以https://www.example.com本质上通常等价于https://www.example.com:443只是默认端口常常会被省略。5.path路径这一段是/articles/2026/url-guide它表示“我要访问这台主机上的哪个资源”。可以把它想象成服务器上的“资源路径”或者“功能入口”。例如//login/articles/2026/url-guide/api/user/profile如果是网站页面路径往往像页面地址。如果是后端接口路径往往像功能路由。比如https://api.example.com/v1/weather/today这里的路径就是/v1/weather/today6.query查询参数这一段是frombloglangzh-CN它出现在问号?后面用来给这次请求补充条件。格式通常是?key1value1key2value2key3value3比如https://www.example.com/search?qurlpage2sorttime这里的查询参数就是qurlpage2sorttime这类参数最常见的用途有搜索关键词分页排序方式筛选条件接口调用参数你要记住两个关键点?只出现一次表示参数开始多个参数之间用连接7.fragment锚点这一段是part-3它出现在井号#后面#part-3它的作用是“定位到页面内部的某个位置”。比如一篇很长的文章中点击https://www.example.com/tutorial#chapter-2浏览器可能会直接跳到 id 为chapter-2的章节位置。这一段有一个非常重要的特点fragment通常不会发送给服务器它更多是浏览器自己用来页面内定位的。这个点在前端开发里非常常见也非常容易被忽略。用生活里的地址类比 URL一下就顺了如果你觉得上面的概念还不够“有画面”那我们把 URL 类比成寄快递scheme用什么运输规则比如普通件还是加密专送host快递要送到哪栋楼port这栋楼走几号门path进门后去几层几号房query附加备注比如“送货前电话联系”fragment收件人到手后直接翻到包裹里的第几页说明书这么一类比URL 就没那么抽象了。浏览器拿到一条 URL 后通常会发生什么还是看这条https://www.example.com:8080/articles/2026/url-guide?frombloglangzh-CN#part-3浏览器大致会这样理解它用https规则发起访问。去找www.example.com这台主机。连接这台主机上的8080端口。请求资源路径/articles/2026/url-guide。顺带把查询参数frombloglangzh-CN一起带上。页面加载后如果存在#part-3对应位置就跳过去。如果把真正发给服务器的关键信息简化一下通常更像这样GET /articles/2026/url-guide?frombloglangzh-CN HTTP/1.1 Host: www.example.com:8080你会发现#part-3并不在里面。这也正说明了fragment更多是给浏览器自己看的不是给服务器看的。最容易混淆的 6 个点1. URL 不等于域名很多人会说“把这个 URL 发我一下”结果发过来的只有www.example.com这其实只是域名不是完整 URL。完整 URL 至少应该包含协议例如https://www.example.com2.www不是必须的很多新手以为网址一定要带www其实不是。下面这两种都可能存在https://www.example.comhttps://api.example.comwww本质上只是一个子域名。3. 没写端口不代表没有端口只是它用了默认端口被省略了。比如http常默认走80https常默认走4434. 查询参数不属于路径很多人会把/search?qurl整个都当成路径。其实不是路径是/search查询参数是qurl5.#后面的内容一般不参与服务端处理这是非常重要的一点。如果你发现后端接口拿不到#后面的内容不是接口坏了而是本来就通常不会收到。6. 中文、空格、特殊符号要编码URL 里不能随便直接塞所有字符。比如空格常见会变成%20像C里的加号也可能需要编码。所以你经常会看到这样的地址https://www.example.com/search?qC%2B%2B%20url这就是 URL 编码的结果。实战一眼拆一条常见 URL来看这个更贴近日常开发的例子https://api.example.com:8443/v1/weather/today?citybeijingunitcelsius#hourly拆开后就是字段内容作用schemehttps说明使用 HTTPS 协议hostapi.example.com要访问的主机port8443访问这台主机上的 8443 端口path/v1/weather/today请求天气接口querycitybeijingunitcelsius传递城市和单位参数fragmenthourly页面内定位到 hourly 部分只要你能这样拆URL 基本就已经掌握了。一句话记住 URL最后送你一个非常适合记忆的口诀协议定规则主机找机器端口进服务路径找资源参数补条件锚点做定位。如果你能把这句话真正记住再看到任何一条常见 URL都不会再慌。

更多文章