状态码、重定向与接口响应
HTTP、Web 与浏览器原理#Python全栈#第九阶段#HTTP、Web 与浏览器原理#状态码、重定向与接口响应约 732 字 · 2 分钟阅读
追问显示点击任意追问卡片可收起 / 展开
1xx、2xx、3xx、4xx 与 5xx 状态码分别表达什么类别?
追问 状态类别能提供哪些排查线索,又为什么不能直接确定故障由哪台机器产生?
200、201、202 与 204 各适合哪些响应?
追问 创建完成、已接受但未完成和成功无内容怎样区分?为什么 204 不应附带 JSON 消息体?
301、302、303、307 与 308 的使用差别是什么?
追问 永久性与后续请求方法是否保留如何组合?提交表单后跳转到结果页,为什么可以考虑 303?
重定向响应中的 Location 应如何理解?
追问 相对地址怎样解析?跳转链过长、循环和跨主机跳转分别可能带来什么问题?
304 与普通成功响应有什么区别?
追问 客户端如何结合已有缓存使用 304?为什么 304 不能当作包含最新 JSON 消息体的 200 处理?
400、401、403 与 404 怎样区分?
追问 请求不合法、身份信息问题、拒绝访问与资源不存在如何表达?401 响应中的 WWW-Authenticate 有什么作用?
405、409、412、415 与 422 分别适合描述什么问题?
追问 方法不支持、资源冲突、前置条件不满足、媒体类型不支持与内容语义错误如何结合接口约定选择?
429 和 Retry-After 可以怎样帮助客户端处理限流?
追问 Retry-After 可以怎样表示等待时间?客户端如何避免所有请求同时立即重试?
500、502、503 与 504 通常提供哪些故障线索?
追问 应用异常、上游响应问题、暂不可用与网关等待超时如何区分?怎样用代理和应用日志核对?
为什么只返回 HTTP 200,再用 JSON 中的 code 表示所有错误,会增加联调成本?
追问 客户端、监控、缓存与代理如何受到影响?业务错误结构与 HTTP 状态如何保持一致?
核对资料: RFC 9110:HTTP 语义。