你需要了解的 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 会指定要使用的协议名称

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

你需要了解的 HTTP Status Code的更多相关文章

  1. http status code

    属于转载 http status code:200:成功,服务器已成功处理了请求,通常这表示服务器提供了请求的网页 404:未找到,服务器未找到 201-206都表示服务器成功处理了请求的状态代码,说 ...

  2. 重定向Http status code 303 和 302

    http 302 http 303 Http 302 302是一个普通的重定向代码.直观的看来是,请求者(浏览器或者模拟http请求)发起一个请求,然后服务端重定向到另一个地址.而事实上,服务端仅仅是 ...

  3. C#、JAVA操作Hadoop(HDFS、Map/Reduce)真实过程概述。组件、源码下载。无法解决:Response status code does not indicate success: 500。

    一.Hadoop环境配置概述 三台虚拟机,操作系统为:Ubuntu 16.04. Hadoop版本:2.7.2 NameNode:192.168.72.132 DataNode:192.168.72. ...

  4. 常见http status code

    常见http status code 常见的状态码: HTTP: Status200– 服务器成功返回网页 HTTP: Status404– 请求的网页不存在 HTTP: Status503– 服务不 ...

  5. HTTP Status Code [RFC]

    来源:http://www.iana.org/assignments/http-status-codes/http-status-codes.xhtml Hypertext Transfer Prot ...

  6. HttpWebRequest.GetResponse() raises exception when http status code 400 (bad request) is returned

    参考: .Net HttpWebRequest.GetResponse() raises exception when http status code 400 (bad request) is re ...

  7. HTTP状态码(HTTP Status Code)【转】

    HTTP状态码(HTTP Status Code) 一些常见的状态码为: 200 - 服务器成功返回网页 404 - 请求的网页不存在 503 - 服务不可用 所有状态解释:点击查看 1xx(临时响应 ...

  8. HTTP状态码 - HTTP Status Code

    HTTP Status Code 常见的状态码: HTTP: Status 200 – 服务器成功返回网页HTTP: Status 404 – 请求的网页不存在HTTP: Status 503 – 服 ...

  9. Js 跨域CORS报错 Response for preflight has invalid HTTP status code 405

    问题 公司项目H5调用接口遇到Response for preflight has invalid HTTP status code 405这样的错误,是使用PUT方式提交请求接口.Content-T ...

  10. How to fix “HTTP Status Code 505 – HTTP Version Not Supported” error?--转

    http://dotnetstock.com/technical/http-status-code-505-http-version-not-supported/ The reason for the ...

随机推荐

  1. Spring aop(1)--- 寻找切面和代理对象执行流程源码分析

    1.基于注解,首先我们是通过@EnableAspectJAutoProxy()这个注解开起AOP功能,这个注解会导入AspectJAutoProxyRegistrar组件从而将AnnotationAw ...

  2. 1、【Spark】Spark安装

    本文基于的环境 Red Hat Linux Enterprise 7 x86_64 jdk 1.7.0_79 Python 2.7Spart spark-1.5.2-bin-hadoop2.6 官方要 ...

  3. web系统是否要前后端分离?

    开发一个web管理系统,是否要采用如今流行的前后端分离模式? 首先要从为什么会出现前后端分离说起,前后端分离的目的. 1.让前端工程师(前端)和后端工程师(后端)们能够更加专注于自己的领域 传统的开发 ...

  4. 分布式系统一致性问题与Raft算法(下)

    上一篇讲述了什么是分布式一致性问题,以及它难在哪里,liveness和satefy问题,和FLP impossibility定理.有兴趣的童鞋可以看看分布式系统一致性问题与Raft算法(上). 这一节 ...

  5. 车道线检测LaneNet

    LaneNet LanNet Segmentation branch 完成语义分割,即判断出像素属于车道or背景 Embedding branch 完成像素的向量表示,用于后续聚类,以完成实例分割 H ...

  6. CSS实现响应式布局

    用CSS实现响应式布局 响应式布局感觉很高大上,很难,但实际上只用CSS也能实现响应式布局要用的就是CSS中的没接查询,下面就介绍一下怎么运用: 使用@media 的三种方法 1.直接在CSS文件中使 ...

  7. JAVA Integer值的范围

    原文出处:http://hi.baidu.com/eduask%C9%BD%C8%AA/blog/item/227bf4d81c71ebf538012f53.html package com.test ...

  8. 【猫狗数据集】pytorch训练猫狗数据集之创建数据集

    猫狗数据集的分为训练集25000张,在训练集中猫和狗的图像是混在一起的,pytorch读取数据集有两种方式,第一种方式是将不同类别的图片放于其对应的类文件夹中,另一种是实现读取数据集类,该类继承tor ...

  9. Windows环境下docker的安装与配置

    Docker是一种容器技术,可以在操作系统中隔离出若干个独立的程序运行环境,这些环境既可以共享宿主机的资源,另一方面他们之间相互独立,互不影响,也不会对宿主机的环境产生影响.与虚拟化技术不同的是,Do ...

  10. 大型Java进阶专题(三) 软件架构设计原则(下)

    前言 ​ 今天开始我们专题的第二课了,本章节继续分享软件架构设计原则的下篇,将介绍:接口隔离原则.迪米特原则.里氏替换原则和合成复用原则.本章节参考资料书籍<Spring 5核心原理>中的 ...