URL参数解析工具

支持的输入格式
  • URL: 完整 URL (例如: https://example.com?id=123)
  • Query String: 查询字符串 (例如: id=123&name=test)

常见问题

基础知识

什么是 URL 查询字符串?

URL 查询字符串是 URL 中问号(?)之后的部分。它包含由 & 符号分隔的键值对,用于向 Web 服务器传递数据。例如,在 'https://example.com/search?q=hello&lang=zh' 中,查询字符串是 'q=hello&lang=zh'。

URL 由哪些部分组成?

URL 由多个部分组成:协议(https://)、域名(example.com)、端口(:8080)、路径(/page)、查询字符串(?key=value)和片段(#section)。查询字符串用于向服务器传递参数,而片段用于客户端导航。

GET 和 POST 参数有什么区别?

GET 参数在 URL 查询字符串中可见,适用于可收藏、可分享的非敏感数据链接。POST 参数在请求体中发送,对 URL 不可见,用于敏感数据或大型数据。GET 有 URL 长度限制(约 2048 字符),而 POST 几乎没有限制。

安全性

为什么 URL 参数需要编码?

URL 编码是必要的,因为 URL 只能包含 ASCII 字符,并且某些字符具有特殊含义(如 &、=、?、/)。空格、中文字符或特殊符号必须进行百分号编码(例如,空格变为 %20)才能安全地在 URL 中传输。

URL 参数有哪些安全注意事项?

切勿将敏感数据(密码、令牌)放在 URL 参数中,因为它们会出现在浏览器历史记录、服务器日志和 Referer 头中。始终在服务器端验证和清理参数以防止注入攻击。使用 HTTPS 在传输过程中加密整个 URL(包括参数)。

进阶技巧

如何在 JavaScript 中解析 URL 参数?

在 JavaScript 中,您可以使用 URLSearchParams API:

const url = new URL('https://example.com?name=John&age=30');
const params = url.searchParams;
console.log(params.get('name')); // 'John'
console.log(params.get('age'));  // '30'

// Or get all parameters
for (const [key, value] of params) {
  console.log(key, value);
}

如何处理同一参数的多个值?

URL 可以为同一参数设置多个值(例如 ?color=red&color=blue)。使用 URLSearchParams.getAll('color') 可获取所有值组成的数组。某些服务器使用方括号表示法,如 ?color[]=red&color[]=blue 来表示数组参数。

什么是哈希片段参数?

哈希片段(# 之后的部分)通常用于客户端导航和单页应用程序。某些框架在哈希中传递参数(例如 #/page?id=123)。与查询字符串不同,哈希片段永远不会发送到服务器——它们完全由浏览器处理。