检查 Clash 订阅地址时,对外或写入笔记应使用脱敏 URL:去掉令牌、密码等密钥,只保留方案、主机、路径层级和「是否曾有查询参数」这类结构。检查的目标是判断路径与编码是否仍指向同一资源,而不是把完整密钥再复制一遍。MDN 将 404 解释为找不到所请求资源(浏览器中即 URL 不被识别;API 中也可是端点有效但资源不存在),将 400 解释为请求存在客户端错误,将 414 解释为 URI 长于服务器愿意解释的长度。路径或编码一旦被改写,上述完成态都可能出现。
适用条件
适用于:需要核对订阅 URL 是否抄错路径或编码,同时不能泄露凭据。已经出现 404、400 或 414 时尤其有用。没有状态码时,先确认请求已发出并收到响应。不要把脱敏后的地址直接拿去更新订阅并期望 200,因为去掉密钥后往往不再具备访问条件。
检查脱敏路径与编码的步骤
- 把地址拆成可公开的几段:方案、主机、路径段数量、是否有末尾斜杠、是否有查询。判断依据:浏览器意义上 URL 不被识别就会 404,所以段数、斜杠和截断必须与来源一致。密钥位置只标注「查询中有令牌」或「用户信息中有密码」,不写具体值。
- 检查编码是否把路径变成另一个标识。错误地插入空格、把多字节字符拆断、重复编码,服务器看到的资源名会变。若服务器按畸形语法处理,可能 400;若当成一个不存在的路径,可能 404。以「只恢复编码、不改主机」后状态是否变化为判断,不要同时改很多处。
- 检查总长度。说明文字、重复粘贴或编码膨胀可能导致 414。判断依据是状态码确为 414,而不是主观觉得「有点长」。缩短到可解释范围后再看是 2xx 还是 404。
- 检查方案与主机组合。请求打到无法为该 scheme 与 authority 产生响应的服务器时,可能 421,这与路径 404 不同,应先核对主机是否抄到另一套服务。
- 不要用 200 的页面外观代替路径核对。200 对 GET 表示资源已取出;若脱敏对比时发现路径段已经不同,即使某次请求 200,取到的也可能不是原订阅。
失败时下一步
脱敏结构一致仍 404,按「资源不存在」或「服务器用 404 代替 403」继续查,而不是再改编码。出现 401 说明缺的是认证材料,应在本机对照完整 URL,对外仍只给脱敏版。记录同时保存状态码与路径层级,避免只留下打码后无法复原段数的字符串。
资料来源: https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Status