WebTool

网络与运维系列 · 第 1 章

URL 结构详解:协议、端口、路径、查询串与锚点

WebTool 团队 · 发布于 2026-09-08 · URL / HTTP / 前端 / 网络

一个完整 URL 由协议、主机、端口、路径、查询串、锚点(外加可选的用户信息)七段组成;浏览器只把「锚点之前的部分」发给服务器,# 之后的内容永远不离开浏览器。 拿到一个复杂 URL 可以用本站 URL 解析工具逐段拆开看。

逐段拆解

https://user:pass@example.com:8443/path/to/page?id=1&lang=zh#section-2
\___/   \_______/ \_________/ \__/ \_________/ \___________/ \_______/
 协议     用户信息    主机      端口    路径        查询串        锚点
部分 说明 备注
协议(scheme) https、http、ftp 等 决定默认端口与安全语义
用户信息 已废弃,基本只见于文档 不要用来传凭证
主机 域名或 IP 不区分大小写
端口 省略时用默认(http 80 / https 443) 默认端口不显示
路径 服务器上的资源位置 / 开头
查询串 ?k=v&k2=v2 键值用 & 分隔,值需 URL 编码
锚点(fragment) # 之后 不发送到服务器,前端路由常用它

绝对路径与相对路径

页面在 https://a.com/docs/guide/ 时:

  • <a href="page2">https://a.com/docs/guide/page2(相对当前目录)
  • <a href="/page2">https://a.com/page2(相对根)
  • 注意末尾的 //docs/guide/docs/guide/ 对相对路径的解析结果不同,这也是「目录页少了斜杠导致资源 404」的常见原因。

三个最常踩的坑

  1. 查询串里的 & 没编码:参数值含 & 会被切成两个参数(详见编码系列第 3 章)。
  2. 锚点丢了:服务端重定向若未显式保留 #...,锚点会丢失——因为它根本不在请求里,服务端也无从转发。
  3. 大小写混淆:域名不区分大小写,但路径和查询串区分/Page/page 是两个地址,Linux 服务器上尤其要注意。

最后更新:2026-09-08