website-check 的第一步:先把目标整理对
1. 为什么要先规范化输入
用户输入到诊断工具里的内容往往不统一:
- 只输入域名
- 输入完整 URL
- 带路径、带参数、带尾斜杠
- 甚至把不同格式混着贴进来
如果不先统一,前后端就会把同一个目标当成不同对象,导致缓存、测试和结果都变得不稳定。
2. 前后端都要做一次
这个模块的关键点是:前端要做,后端也要做。
前端规范化是为了让用户体验更顺滑,后端规范化是为了让 API 契约不漂移。这样可以避免:
- 同一个站点被重复诊断
- 带路径的 URL 被误判
- 测试中出现“页面能跑、API 失败”的情况
3. 代码里的实现
主要逻辑在这两个地方:
src/app/tools/website-check/WebsiteCheckClient.tsxsrc/app/api/diagnostic/route.ts
核心动作就是:把输入统一成 hostname,再继续后面的 DNS / HTTP / SSL / CDN 检测。
4. 这个步骤的重要性
很多人会把这一步看得很小,但它实际上决定了:
- 结果是否稳定
- 缓存是否能复用
- 测试是否容易写
- 故障排查是否容易对齐
如果目标都没整理对,后面的诊断基本都会漂。