/users/9999准备打开资料页路径格式正确,路由能处理它;是否有这位用户还没确定。
数据与服务 · 网络与接口
404 表示服务器找不到这个资源:路由可以匹配,但记录查无。它不是 5xx、不是参数格式错误;前端应展示空状态并提供可继续的入口。
打开一个真实的用户资料链接。先让同一页变成 404 空状态,再用它的返回入口恢复;不要把 404 做成状态码选择题。
有人发来用户 #9999 的资料链接。打开它:观察路由先命中、记录随后查无;然后从同一页的空状态返回列表。
/users/9999准备打开资料页路径格式正确,路由能处理它;是否有这位用户还没确定。
第 0 步:路径可被路由处理;打开后才知道资源是否存在。
刚才的 404 只说明资源查无。相邻状况要分开处理,才不会让前端、缓存和安全判断混淆。
路由能处理但记录不存在;前端显示空状态和返回入口。
/users/abc 这类参数不合法,连查询资源都不该开始。
明确知道资源曾存在又被永久删,才用 Gone。
无权查看时也可统一 404,避免用 403 泄露资源存在性。
先判断“查无”还是“异常 / 格式 / 业务状态”,再给符合该状态的下一步。
200 + {found:false}。目标都是让用户不白屏。只改变服务端返回码,前端和安全含义就不同。
GET /users/9999 → 404。页面说明记录不存在并返回列表,监控不把它当服务故障。
GET /users/9999 → 200 {found:false}。HTTP 层误判成功,前端还得每个接口额外猜一次。
一个商品页曾存在且已被永久删除,希望爬虫停止访问,应返回什么?
术语的技术定义和行为以这些一手或权威资料为准。
和本知识点经常一起出现的概念。