响应状态码 一、状态码大类 状态码分类 说明 1xx 响应中——临时状态码,表示请求已经接受,告诉客户端应该继续请求或者如果它已经完成则忽略它 2xx 成功——表示请求已经被成功接收,处理已完成 3xx 4xx 客户端错误——处理发生错误,责任在客户端,如:客户端的请求一个不存在的资源,客户端未被授权,禁止访问等 5xx 服务器端错误——处理发生错误,责任在服务端,如:服务端抛出异常,路由出错,HTTP 版本不支持等 状态码大全:https://cloud.tencent.com/developer/chapter/13553 二、常见的响应状态码 状态码 英文描述 解释 200 OK 客户端请求成功 ,即处理成功,这是我们最想看到的状态码 302 Found 指示所请求的资源已移动到由Location响应头给定的 URL,浏览器会自动重新访问到这个页面 304 Not Modified 告诉客户端, 服务器出异常了,赶紧看日志去吧 503 Service Unavailable 服务器尚未准备好处理请求,服务器刚刚启动,还未初始化好 511 Network Authentication Required
403 Forbidden.服务器已经理解请求,但是拒绝执行它 404 Not Found.请求失败,请求所希望得到的资源未在服务器上发现. 404这个状态码被广泛应用于当服务器不想揭示为何请求被拒绝 ,或者没有其他适合的响应可⽤的情况下. 500 Internal Server Error.服务器遇到某个未曾预料的状况,导致它无法完成对请求的处理. 一般来说,这个问题都会在服务器的程序码出错时出现. 502 Bad Gateway.作为网关或代理工作的服务器尝试执行请求时,从上游服务器接收到无效的响应. 503 Service Unavailable .由于临时的服务器维护或过载,服务器当前无法处理请求.这个状况是临时的, 并且将在一段时间以后恢复.503状态码的存在并不意味着服务器在过载的时候必须使用它. . 504 Gateway Timeout作为网关或代理工作的服务器尝试执行请求时,未能及时从上游服务器(URI标识出的服务器, 例如HTTP,FTP,LDAP)或辅助服务器(例如DNS)收到响应
http响应码简介 1 返回401 一般生产环境出现这个问题,是由于没有通过接口的登录认证。 就会出现返回码是401的情况。 2 返回403 如果生产环境请求某个接口,返回码是403,则说明目前没有访问资源的权限。 这种场景跟返回码是401有区别。 如果没有通知所有的接口调用方,都可能会出现请求接口返回码为404的情况。 还有一种可能也会导致请求接口报404的问题,接口地址之前注册到了API网关中,但API网关的配置出现了问题。 5 返回500 如果请求的接口,返回码为500,一般是出现了服务的内部错误。 一般网关层会对接口的返回值做一次封装,不会返回真正的异常信息。 我们只能查看接口的错误日志,来定位和排查问题。 建议出现异常时,把接口请求参数打印出来,方便后面复现问题。 导致这种问题的原因有很多,我们只能根据服务器上的错误日志,和相关的业务代码逐一排查。
以HTTP状态码为例,为了更加清晰的表述和区分状态码的含义,HTTP状态做了分段。 比如200->请求成功, 5XX状态码,比如502->服务器异常,通常就是服务没正常运行,或者代码执行出错 通过状态码即可初步判断问题原因,HTTP状态的设计思路值得借鉴。 三、参数约定 虽说是返回码设计,但是只有code是不行的,还要有对应的message,让人可以看懂 字段 类型 说明 code int 返回码 message string 返回码说明 参考HTTP状态码的思路 ,我们对错误码进行分段 返回码值 说明 0 成功 99999 系统发生未知异常 10000-19999 参数校验错误 20000-29999 A步骤执行失败 30000-39999 B步骤执行失败 通过这样的设计 我们可以根据单位时间内99999的数量来做API的异常告警 我们可以根据Code的返回饼图,帮助我们发现系统、业务流程中的问题 等等 ---- 总之,好的返回码设计,可以帮助我们提高沟通效率,降低代码的维护成本
API返回码的设计还是要认真对待,毕竟好的返回码设计可以降低沟通成本以及程序的维护成本。 —2— HTTP 状态码 以HTTP状态码为例,为了更加清晰的表述和区分状态码的含义,HTTP状态做了分段。 对于后端开发来说,我们通常见到的都是: 2XX状态码,比如200->请求成功。 5XX状态码,比如502->服务器异常,通常就是服务没正常运行,或者代码执行出错。 通过状态码即可初步判断问题原因,HTTP状态的设计思路值得借鉴。 —3— 参数约定 虽说是返回码设计,但是只有code是不行的,还要有对应的message,让人可以看懂。 参考HTTP状态码的思路,我们对错误码进行分段。 我们可以根据单位时间内99999的数量来做API的异常告警。 我们可以根据Code的返回饼图,帮助我们发现系统、业务流程中的问题。
EdgeOne 响应的异常状态码分为以下几类:标准状态码您可以参考 HTTP 状态码标准 来查看具体的状态码含义,这类状态码通常在以下情况下响应:请求回源后,由源站响应的状态码信息,节点将透传源站响应的状态码返回给客户端 由 EdgeOne 节点直接响应,例如:Token 鉴权不通过,响应 403 状态码。 416range 范围异常,如 rangeStart < 0、rangeStart > rangeEnd、rangeStart > FileSize。 如下为 EdgeOne 自定义的异常状态码以及含义说明,方便您在业务访问异常时进行自助排障。 522节点请求到源站,在 TCP 建连阶段,源站一直没有响应导致节点超时,则节点响应客户端 522 状态码。
HttpCode 浏览器向服务器请求时,服务器响应的消息头里面有状态码,表示请求结果的状态 分类 1XX:收到请求,需要请求者继续执行操作,比较少用 2XX:请求成功,常用200 3XX:重定向,浏览器在拿到服务器返回的这个状态码后会自动跳转到一个新的 URL地址,这个地址可以从响应的Location首部中获取: 好处:网站改版、域名迁移、多个域名指向同个主站导流 常用: 301:永久性跳转,比如域名过期,换个域名 302:临时性跳转 4XX:客户端出错
1.各种状态码设置 https://blog.csdn.net/daichangxia/article/details/78139324 2.设置状态码 通过HttpServletResponse的方法进行返回相应的状态码 ,方法有如下: public void setStatus ( int statusCode ) 该方法设置一个任意的状态码。 setStatus 方法接受一个 int(状态码)作为参数。如果您的反应包含了一个特殊的状态码和文档,请确保在使用 PrintWriter 实际返回任何内容之前调用 setStatus。 public void sendRedirect(String url) 该方法生成一个 302 响应,连同一个带有新文档 URL 的 Location 头。 注意一下,当使用response的setStatus(int sc)方法发送404状态码时,不起任何作用。
406 Not Acceptable 服务器生成的响应无法被客户端所接受。 服务器从上游服务器收到一个无效的响应。 502.1 CGI 应用程序超时。 502.2 CGI 应用程序出错。 503 Service Unavailable 请求未完成。服务器临时过载或当机。
响应状态码 9. 在 HTTP 协议中,你将发送 3 位数的数字状态码作为响应的一部分。 100 及以上状态码用于「消息」响应。你很少直接使用它们。具有这些状态代码的响应不能带有响应体。 200 及以上状态码用于「成功」响应。这些是你最常使用的。 此响应在没有内容返回给客户端时使用,因此该响应不能包含响应体。 300 及以上状态码用于「重定向」。 具有这些状态码的响应可能有或者可能没有响应体,但 304「未修改」是个例外,该响应不得含有响应体。 400 及以上状态码用于「客户端错误」响应。这些可能是你第二常使用的类型。
HTTP 状态代码或响应码共分为五类,分别是 1×× 提示信息,2×× 成功,3×× 重定向,4×× 客户端错误,5×× 服务器错误。 本文包含了完整的 HTTP 状态码以及相应的描述信息。 当我们进行 API 测试时,通常首先会检查 API 调用返回的响应的状态码。这就要求我们必须熟悉那些最常见的 HTTP 状态码,以便我们能够更快地识别问题。 1×× 提示信息类状态码 1xx 提示信息类状态代码表示在完成请求的动作并发送最终响应之前,用于表示通信连接状态或请求进度的临时响应。 100 继续 101 交换协议中 102 处理中 2×× 请求成功响应状态码 2xx(Successful)类状态代码表示客户端的请求已被成功接收、理解和接受。 200-正常,状态代码表示请求已成功。 204-无内容,状态代码指示服务器已成功完成请求,并且在响应有效载荷主体中没有要发送的附加内容。
HTTP请求状态码汇总,加粗的比较常见: httpStatusCodes : 100: "Continue", 101: "Switching Protocols", 200: "OK", 201:
HTTP状态码(HTTP Status Code)是一种表示网页服务器响应状态的三位数字编码。通过这些数字,可以简化状态的表达。状态码有十种,其中首位数字为1-5。根据这5个数字,状态码可以分为5类。 这两个状态码都关系到能否获取重要的信息。当用户第一次请求服务器资源,服务器成功返回资源,这是状态码为200。所以,状态码为200的数据包往往包含用户从服务器获取的数据。 服务器会判断修改时间,如果没有修改过,就会返回状态码304,告诉客户端该资源依然有效,客户端会直接使用缓存中的资源。针对304响应,渗透人员可以分析对应的请求包,获取资源路径。
前言 我们之前分享的是是请求模型,请求参数,这次呢,我们看下响应状态码相对应的。 在以下任意的接口路径中使用 status_code 参数来声明用于响应的 HTTP 状态码: @app.get() @app.post() @app.put() @app.delete() 我们可以简单的看下 100 及以上状态码用于「消息」响应。你很少直接使用它们。具有这些状态代码的响应不能带有响应体。 200 及以上状态码用于「成功」响应。这些是你最常使用的。 此响应在没有内容返回给客户端时使用,因此该响应不能包含响应体。 300 及以上状态码用于「重定向」。具有这些状态码的响应可能有或者可能没有响应体,但 304「未修改」是个例外,该响应不得含有响应体。 400 及以上状态码用于「客户端错误」响应。这些可能是你第二常使用的类型。 一个例子是 404,用于「未找到」响应。 对于来自客户端的一般错误,你可以只使用 400。
(二)HTTP响应状态行包括HTTP协议版本、状态码和原因短语。例如,“HTTP/1.1 200 OK”。状态码1xx(信息性状态码):表示请求已被接收,继续处理。 2xx(成功状态码):表示请求已成功被服务器接收、理解、并接受。200 OK:请求成功,服务器返回了请求的资源。201 Created:请求成功,并且服务器创建了新的资源。 204 No Content:请求成功,但响应体为空。3xx(重定向状态码):表示需要后续操作才能完成请求。 4xx(客户端错误状态码):表示客户端可能发生了错误,妨碍了服务器的处理。400 Bad Request:请求语法有误,服务器无法理解。401 Unauthorized:请求未授权,需要身份验证。 5xx(服务器错误状态码):表示服务器在处理请求的过程中发生了错误。500 Internal Server Error:服务器内部错误,无法完成请求。
验证码响应结果分析 首先从前端开始进行分析,进入到登录页面,打开开发者工具(f12),找到 network,f5 刷新一下页面,然后,筛选一下,筛选内容为 Fetch/XHR: 你会发现列表中有两项内容 ,我们只需要查看 captchaImage 即可,从名字就可以看出是验证码图片的意思,然后我们查看这个响应结果是什么,响应结果内容如下: { "msg": "操作成功", "img": (); 如果为 false 直接返回响应结果,则前端没有验证码需要进行填写。 () { // 创建一个 AjaxResult 这个是用于返回响应结果是实体类对象 AjaxResult ajax = AjaxResult.success(); // 查看验证码的配置是否开启了验证码 boolean captchaEnabled = configService.selectCaptchaEnabled(); // 将标志写入到响应结果中 ajax.put("
6.另外,HTTP请求报文和响应报文都是由开始行(对于请求消息,开始行就是请求行,对于响应消息,开始行就是状态行),消息报头(可选),空行(只有CRLF的行),消息正文(可选)组成。 软件测试人员了解一些服务器返回的HTTP状态的意思是必不可少的,只有弄清楚这些状态码,工作中才会得心应手,HTTP状态码如下: HTTP响应状态码: 状态代码由三位数字组成,第一个数字定义了响应的类别, 常用状态码: 1xx - 信息提示 这些状态代码表示临时的响应。客户端在收到常规响应之前,应准备接收一个或多个1xx 响应。 许多浏览器会错误地响应302应答进行重定向,即使原来的请求是POST,即使它实际上只能在POST请求的应答是303时 才能重定向。 服务器必须包含有关响应中所发生的冲突的信息。服务器在响应与前一个请求相冲突的 PUT 请求时可能会返回此代码,同时会提供两个请求的差异列表。
python requests检测响应状态码 1、为了方便引用,Requests附有一个内置的状态码查询对象。 >>> r.status_code == requests.codes.ok True 2、如果发送失败请求(非200响应),我们可以通过Response.raise_for_status()抛出异常。 raise_for_status raise http_error requests.exceptions.HTTPError: 404 Client Error 以上就是python requests检测响应状态码的方法
TRACE: 请求服务器在响应中的实体主体部分返回所得到的内容。 PATCH: 实体中包含一个表,表中说明与该URI所表示的原内容的区别。 MOVE: 请求服务器将指定的页面移至另一个网络地址。 HTTP响应状态码: ① 客户方错误 100 继续 101 交换协议 ② 成功 200 OK 201 已创建 202 接收 203 非认证信息 204 无内容 205 重置内容 206
前言 和指定响应模型一样,可以在任何路径操作中添加参数 status_code,用于声明响应的 HTTP 状态码 @app.get() @app.post() @app.put() @app.delete True) 重点 status_code 接收一个带有 HTTP 状态代码的 number status_code 也可以接收一个 IntEnum 如果是 number,可以使用 ,里面都是封装好的状态码变量 status.HTTP_201_CREATED) async def create_item(name: str): return {"name": name} 更推荐用这个,因为变量名会包含状态码+ status_code=HTTPStatus.CREATED) async def create_item(name: str): return {"name": name} status_code 的作用 在响应中返回该状态代码