对于http响应码的一些总结
本人对于http响应码的一些总结和理解
http状态存在的五大意义(为什么要设计这些状态响应)
- 1.即时反馈 打破黑箱通讯 如果没有状态码长时间没有收到消息都不知道出了什么问题
- 2.责任分明 明确是哪里出了问题 4xx是客户端的问题 5xx是服务端的问
- 3.驱动自动化 机器或者程序上自主决定下一步操作 主要是针对301 304 401 429这类未认证或者重定向的等配合逻辑代衔接处理方法
- 4.性能上优化 减少宽带浪费,快速失败以前网络很贵简单的状态码标识就能说明原因
- 5.协议化标准 全球web统一标准,不同国家的程序员不同语言写的代码都能看懂
设计的终极思路还是解耦 协议层和应用层解耦
- 1.协议层 只关心通讯是否成功 状态码这类状态码是机器可读的
- 2.业务层 关注实际业务数据 返回的数据+页面人类可读
具体总结和应用
- 1xx类响应 消息服务端已经收到但还在处理 这类响应码很少直接见到
- 100 客户端发送大文件确认
- 101 请求切换协议
- 102 处理中
- 2xx类响应 服务端已经收到并成功处理
- 200 响应成功
- 201 资源创建成功
- 202 请求已接受但未完成处理
- 204 请求成功但是没有实际响应的内容
- 206 分块传输优化性能
- 3xx类响应 需要转发重定向的
- 301 新地址旧地址作废 搜索引擎会更新索引
- 302 临时重定向
- 304 资源未修改使用缓存
- 308 更严格的重定向要求请求的内容和方式都能不改变
- 4xx类响应 客户请求错误 可能是请求方式 请求路径之类的问题
- 400 通用客户端错误
- 401 没有认证 需要token或者token失效
- 403 已认证但是权限不足
- 404 请求路径的问题
- 405 请求方法不被资源支持
- 408 服务器等待请求发送超时
- 409 资源冲突
- 429 请求过于频繁
- 5xx类响应 服务器端的问题
- 500 服务器内部异常
- 501 服务器不支持该功能
- 502 网关/代理服务器无法从上游获取有效响应 nginx这类的
- 503 服务器过载了
- 504 网关/代理服务器等待上游响应超时