亲宝软件园·资讯

展开

你需要了解的 HTTP Status Code

WeihanLi 人气:0
# 你需要了解的 HTTP Status Code ## Intro 现在前后端分离的开发模式越来越流行,后端负责开发对应的 API,前端只需要 关注前端页面的数据展示和前端逻辑即可。 对于前后端分离这种开发模式,我个人还是比较喜欢的,因为这样可以让更专业的人做更专业的事情,后端专注于做 API 的开发设计,前端专注于数据的展示,页面的样式。 这样前后端需要就某些信息达成一些共识,比如说常用的 HTTP 方法, 常用的 HTTP 状态码等 HTTP Method 较为简单,我们常用的习惯如下: 一般查询我们都会使用 GET 方法, 创建新的记录使用 POST 方法 更新已有数据使用 PUT 方法 更新已有数据部分属性使用 PATCH 方法 删除已有数据使用 DELETE 方法 下面来详细介绍一下常用的 HTTP 状态码 ## 1xx 1xx 状态码一般是一个请求的中间状态,一般是信息提示,请求协商 **100** Continue,请求未结束,应该继续请求 **101** Switching Protocol,协议转换,在使用 Web Socket 的时候就会遇到,下面是一个示例,响应会有一个 `Connection: Upgrade` 的请求头,`Upgrade` 会指定要使用的协议名称 ![websocket demo](https://upload-images.jianshu.io/upload_images/2432073-25bd08db96043bf6.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) ## 2xx 2xx 一般表示请求处理成功 **200** OK,请求处理成功 **201** Created,请求处理成功,并且新资源已经创建 **202** Accepted,请求已经接受,正在处理,尚未处理完成 **204** No Content,响应内容为空,在 asp.net core 中返回一个 `Json(null)` 的时候就会是一个 NoContent 的结果 ## 3xx 3xx 一般表示重定向 **301** Moved Permanently 永久重定向 **302** Found 临时重定向 **307** Temporary Redirect 临时重定向请求 **308** Permanent Redirect 永久重定向请求 这几个重定向的区别: 301、302 只支持 GET 请求,如果是 POST 请求,重定向后会使用 GET 请求且 Body 数据会丢失 307、308 支持 POST 请求,在 POST 重定向的时候会带上原来请求的 body 再请求新的地址,body 数据不会丢失 302、307 是临时重定向, 301、308 是永久重定向,是允许缓存的,浏览器可以缓存 **304** Not Modified,资源未发生修改,可以直接使用浏览器本地缓存 > This is the response code to an If-Modified-Since or If-None-Match header, where the URL has not been modified since the specified date. ## 4xx 4xx 一般表示客户端请求错误 **400** BadRequest,错误请求,一般用来表示请求参数异常,比如请求的某一个参数不能为空,但实际请求是空 **401** Unauthorized,未授权,资源需要授权或登录,而用户没有登录或者没有提供访问所需的 Token 等 **403** Forbidden,禁止访问,当前用户没有权限访问资源,如需要Admin角色的用户,但是请求的用户没有这个角色 **404** NotFound,未找到资源,资源不存在 **405** Method Not Allowed,不允许的方法调用,资源不支持的请求方法,比如资源只允许 GET 请求,但是实际请求使用了 POST 或 DELETE 方法 **406** Not Acceptable,请求的资源客户端不支持处理,比如客户端希望获取 xml 的响应,但是服务器端只支持 JSON 响应 **408** Request Timeout, 请求处理超时 **409** Conflict,请求资源冲突,常发生在 PUT 更新资源信息时发生,比如更新时指定资源的 ETAG,但是PUT请求时,资源的 ETAG 已经发生变化 **410** Gone,请求资源在源服务器上不再可用 **411** Length Required,请求需要携带 `Content-Length` 请求头 **412** Precondition Failed,请求预检失败,请求的某些参数不符合条件 > The pre condition given in the request evaluated to false by the server. **413** Payload Too Large,请求的参数太大,请求的 body 过大,服务器拒绝处理 **414** URI Too Long,请求的 URI 地址太长,服务器拒绝处理 **415** Unsupported Media Type,不支持的媒体类型或不支持的编码,比如服务器只支持处理 JSON 请求,但是请求是 xml 格式 > The 415 (Unsupported Media Type) status code indicates that the origin server is refusing to service the request because the payload is in a format not supported by this method on the target resource. The format problem might be due to the request's indicated Content-Type or Content-Encoding, or as a result of inspecting the data directly. ## 5xx 5xx 一般表示服务端错误 **500** Internal Server Error,服务器内部错误 **501** Not Implemented 服务器不支持需要处理请求的功能,比如图片压缩等处理 **502** Bad Gateway 反向代理或网关找不到处理请求的服务器 **503** Service Unavailable 服务不可用 **504** Gateway Timeout 网关超时 **505** HTTP Version Not Supported,不支持的 HTTP 版本,服务器不支持或拒绝处理这个 HTTP 版本的请求 ## Reference - [https://www.tutorialspoint.com/http/http_status_codes.htm](https://www.tutorialspoint.com/http/http_status_codes.htm) - [https:/https://img.qb5200.com/download-x/developer.mozilla.org/en-UShttps://img.qb5200.com/download-x/docs/Web/HTTP/Status](https:/https://img.qb5200.com/download-x/developer.mozilla.org/en-UShttps://img.qb5200.com/download-x/docs/Web/HTTP/Status) - [https://tools.ietf.org/html/rfc7231#section-6.2](https://tools.ietf.org/html/rfc7231#section-6.2)

加载全部内容

相关教程
猜你喜欢
用户评论