产业气象站 HTTP Status Code,你需要了解的

现在前后端分离的开发模式越来越流行 , 后端负责开发对应的API , 前端只需要关注前端页面的数据展示和前端逻辑即可 。
对于前后端分离这种开发模式 , 我个人还是比较喜欢的 , 因为这样可以让更专业的人做更专业的事情 , 后端专注于做API的开发设计 , 前端专注于数据的展示 , 页面的样式 。
这样前后端需要就某些信息达成一些共识 , 比如说常用的HTTP方法,常用的HTTP状态码等
HTTPMethod较为简单 , 我们常用的习惯如下:
1.一般查询我们都会使用GET方法
2.创建新的记录使用POST方法
3.更新已有数据使用PUT方法
4.更新已有数据部分属性使用PATCH方法
5.删除已有数据使用DELETE方法
下面来详细介绍一下常用的HTTP状态码
1xx#
1xx状态码一般是一个请求的中间状态 , 一般是信息提示 , 请求协商
100Continue , 请求未结束 , 应该继续请求
101SwitchingProtocol , 协议转换 , 在使用WebSocket的时候就会遇到 , 下面是一个示例 , 响应会有一个Connection:Upgrade的请求头 , Upgrade会指定要使用的协议名称
产业气象站 HTTP Status Code,你需要了解的
文章图片
2xx#
2xx一般表示请求处理成功
200OK , 请求处理成功
201Created , 请求处理成功 , 并且新资源已经创建
202Accepted , 请求已经接受 , 正在处理 , 尚未处理完成
204NoContent , 响应内容为空 , 在asp.netcore中返回一个Json(null)的时候就会是一个NoContent的结果
3xx#
3xx一般表示重定向
301MovedPermanently永久重定向
302Found临时重定向
307TemporaryRedirect临时重定向请求
308PermanentRedirect永久重定向请求
这几个重定向的区别:
1.301、302只支持GET请求 , 如果是POST请求 , 重定向后会使用GET请求且Body数据会丢失
2.307、308支持POST请求 , 在POST重定向的时候会带上原来请求的body再请求新的地址 , body数据不会丢失
3.302、307是临时重定向
4.301、308是永久重定向 , 是允许缓存的 , 浏览器可以缓存
5.304NotModified , 资源未发生修改 , 可以直接使用浏览器本地缓存
4xx#
4xx一般表示客户端请求错误
400BadRequest , 错误请求 , 一般用来表示请求参数异常 , 比如请求的某一个参数不能为空 , 但实际请求是空
401Unauthorized , 未授权 , 资源需要授权或登录 , 而用户没有登录或者没有提供访问所需的Token等
403Forbidden , 禁止访问 , 当前用户没有权限访问资源 , 如需要Admin角色的用户 , 但是请求的用户没有这个角色
404NotFound , 未找到资源 , 资源不存在
405MethodNotAllowed , 不允许的方法调用 , 资源不支持的请求方法 , 比如资源只允许GET请求 , 但是实际请求使用了POST或DELETE方法
406NotAcceptable , 请求的资源客户端不支持处理 , 比如客户端希望获取xml的响应 , 但是服务器端只支持JSON响应
408RequestTimeout,请求处理超时
409Conflict , 请求资源冲突 , 常发生在PUT更新资源信息时发生 , 比如更新时指定资源的ETAG , 但是PUT请求时 , 资源的ETAG已经发生变化
410Gone , 请求资源在源服务器上不再可用
411LengthRequired , 请求需要携带Content-Length请求头
412PreconditionFailed , 请求预检失败 , 请求的某些参数不符合条件
Thepreconditiongivenintherequestevaluatedtofalsebytheserver.
413PayloadTooLarge , 请求的参数太大 , 请求的body过大 , 服务器拒绝处理
414URITooLong , 请求的URI地址太长 , 服务器拒绝处理
415UnsupportedMediaType , 不支持的媒体类型或不支持的编码 , 比如服务器只支持处理JSON请求 , 但是请求是xml格式