URL参数解析工具
支持的输入格式
- URL: 完整 URL (例如: https://example.com?id=123)
- Query String: 查询字符串 (例如: id=123&name=test)
URL 查询字符串是 URL 中问号(?)之后的部分。它包含由 & 符号分隔的键值对,用于向 Web 服务器传递数据。例如,在 'https://example.com/search?q=hello&lang=zh' 中,查询字符串是 'q=hello&lang=zh'。
URL 由多个部分组成:协议(https://)、域名(example.com)、端口(:8080)、路径(/page)、查询字符串(?key=value)和片段(#section)。查询字符串用于向服务器传递参数,而片段用于客户端导航。
GET 参数在 URL 查询字符串中可见,适用于可收藏、可分享的非敏感数据链接。POST 参数在请求体中发送,对 URL 不可见,用于敏感数据或大型数据。GET 有 URL 长度限制(约 2048 字符),而 POST 几乎没有限制。
URL 编码是必要的,因为 URL 只能包含 ASCII 字符,并且某些字符具有特殊含义(如 &、=、?、/)。空格、中文字符或特殊符号必须进行百分号编码(例如,空格变为 %20)才能安全地在 URL 中传输。
切勿将敏感数据(密码、令牌)放在 URL 参数中,因为它们会出现在浏览器历史记录、服务器日志和 Referer 头中。始终在服务器端验证和清理参数以防止注入攻击。使用 HTTPS 在传输过程中加密整个 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)。与查询字符串不同,哈希片段永远不会发送到服务器——它们完全由浏览器处理。