⌘K 切换工具
NETWORK · HTTP

URL解析和分析工具

解析和显示URL的各个组件。

local
url-parser
§01 关于此工具

概述

这个工具用浏览器符合标准的 URL API 解析一条 URL,并把每个组成部分逐项列出: ProtocolHostHostnamePortPathQueryFragmentOrigin。查询串还会被额外展开成键值表格并做百分号解码——排查重定向、 OAuth 回调、UTM 参数和签名 URL 时很有用。

把一条长 URL 拆开看,最常解决的是两类问题:某个参数值到底有没有被正确编码, 以及回调地址里的端口、路径和片段是不是和你以为的一样。

使用方法

  1. 把完整的 URL 粘贴到 URL 输入框,要带上协议(例如 https://)。
  2. 在统计列表里读取各个组成部分;缺失的部分会显示 (default)(none)
  3. 如果这条 URL 带查询串,可以在 Query parameters 表格里逐对查看。

示例

  • https://[email protected]:8080/path?a=1&b=2#top → Protocol https:、Host example.com:8080、Port 8080、Path /path、Fragment #top,参数 a=1b=2
  • https://example.com/search?q=hello%20world → 参数 q 的值是 hello world

说明

输入必须是绝对 URL——像 /foo?bar=1 这样的相对路径会被判为 Invalid URL, 因为 WHATWG 的 URL 解析器要求带协议。解析规则与 fetch 和浏览器地址栏一致, 所以你在这里看到的就是你的代码看到的。

还要注意表格里的键值都是解码之后的形态,因此如果你要把其中某个值原样放回 URL 里, 记得重新编码一次。

FAQ
我粘贴的 URL 会被发送到你们的服务器吗?
不会。解析使用浏览器原生的 URL API,完全在你的设备上运行。这条 URL 既不会被传输也不会被请求——工具只检查这个字符串,不去访问这个地址。
host 和 hostname 有什么区别?
hostname 只是域名(example.com),而 host 在显式带端口时会包含端口(example.com:8080)。如果 URL 用的是该协议的默认端口,host 和 hostname 就完全一样,Port 会显示 "(default)"。
查询参数会被百分号解码吗?
会。参数通过 URLSearchParams 读取,所以表格里的键和值都是解码之后的形态——%20 变成空格,重复出现的键会各占一行。