响应状态码 一、状态码大类 状态码分类 说明 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有区别。 3 返回404 不用怀疑,你请求的接口地址,现在已经不存在了,才会报404。 比如有些接口名称改了,或者接口路径中/v1/user/query改成了/v2/user/query,版本号升级了。 5 返回500 如果请求的接口,返回码为500,一般是出现了服务的内部错误。 一般网关层会对接口的返回值做一次封装,不会返回真正的异常信息。 我们只能查看接口的错误日志,来定位和排查问题。 建议出现异常时,把接口请求参数打印出来,方便后面复现问题。 导致这种问题的原因有很多,我们只能根据服务器上的错误日志,和相关的业务代码逐一排查。
分段 分段描述 1XX 信息,服务器收到请求,需要请求者继续执行操作 2XX 成功,操作被成功接收并处理 3XX 重定向,需要进一步的操作以完成请求 4XX 客户端错误,请求包含语法错误或无法完成请求 5XX 服务器错误,服务器在处理请求的过程中发生了错误 对于后端开发来说,我们通常见到的都是: 2XX状态码,比如200->请求成功, 5XX状态码,比如502->服务器异常,通常就是服务没正常运行, 三、参数约定 虽说是返回码设计,但是只有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状态码时,不起任何作用。
3xx:重定向 300 Multiple Choices 多重选择。链接列表。用户可以选择某链接到达目的地。最多允许五个地址。 406 Not Acceptable 服务器生成的响应无法被客户端所接受。 服务器从上游服务器收到一个无效的响应。 502.1 CGI 应用程序超时。 502.2 CGI 应用程序出错。 503 Service Unavailable 请求未完成。服务器临时过载或当机。
任意 dict 的响应 8. 响应状态码 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-正常,状态代码表示请求已成功。 202-接受 203-非权威信息 205-重置内容 206-部分内容 207-多状态 208-已报告 226-使用 IM 相关: HTTP 的基础 3xx 重定向 3xx状态码表示用户代理需要执行进一步的操作才能完成请求
HTTP请求状态码汇总,加粗的比较常见: httpStatusCodes : 100: "Continue", 101: "Switching Protocols", 200: "OK", 201:
HTTP状态码(HTTP Status Code)是一种表示网页服务器响应状态的三位数字编码。通过这些数字,可以简化状态的表达。状态码有十种,其中首位数字为1-5。根据这5个数字,状态码可以分为5类。 1XX表示请求正在处理;2XX表示请求已经成功处理;3XX表示重定向;4xx表示请求错误;5xx表示服务器错误。 在嗅探抓包的过程中,常见的状态吗有200和304。 这两个状态码都关系到能否获取重要的信息。当用户第一次请求服务器资源,服务器成功返回资源,这是状态码为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(重定向状态码):表示需要后续操作才能完成请求。 5xx(服务器错误状态码):表示服务器在处理请求的过程中发生了错误。500 Internal Server Error:服务器内部错误,无法完成请求。 Content - Length:表示响应体的长度,单位是字节。Location:在3xx重定向响应中,该字段表示新的资源位置。Set - Cookie:用于设置客户端的Cookie。
验证码响应结果分析 首先从前端开始进行分析,进入到登录页面,打开开发者工具(f12),找到 network,f5 刷新一下页面,然后,筛选一下,筛选内容为 Fetch/XHR: 你会发现列表中有两项内容 ,我们只需要查看 captchaImage 即可,从名字就可以看出是验证码图片的意思,然后我们查看这个响应结果是什么,响应结果内容如下: { "msg": "操作成功", "img": (); 如果为 false 直接返回响应结果,则前端没有验证码需要进行填写。 () { // 创建一个 AjaxResult 这个是用于返回响应结果是实体类对象 AjaxResult ajax = AjaxResult.success(); // 查看验证码的配置是否开启了验证码 boolean captchaEnabled = configService.selectCaptchaEnabled(); // 将标志写入到响应结果中 ajax.put("
3.灵活:HTTP允许传输任意类型的数据对象。正在传输的类型由Content-Type加以标记。 4.无连接:无连接的含义是限制每次连接只处理一个请求。 软件测试人员了解一些服务器返回的HTTP状态的意思是必不可少的,只有弄清楚这些状态码,工作中才会得心应手,HTTP状态码如下: HTTP响应状态码: 状态代码由三位数字组成,第一个数字定义了响应的类别, 3xx:重定向--要完成请求必须进行更进一步的操作。 4xx:客户端错误--请求有语法错误或请求无法实现。 5xx:服务器端错误--服务器未能实现合法的请求。 常用状态码: 1xx - 信息提示 这些状态代码表示临时的响应。客户端在收到常规响应之前,应准备接收一个或多个1xx 响应。 3xx - 重定向 客户端浏览器必须采取更多操作来实现请求。例如,浏览器可能不得不请求服务器上的不同的页面,或通过代理服务器重复该请求。
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检测响应状态码的方法
一个HTTP请求报文由请求行(request line)、请求头部(header)、空行和请求数据4个部分组成,格式如下: 可见请求行由请求方法字段、URL字段和HTTP协议版本字段3个字段组成,它们用空格分隔 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 的作用 在响应中返回该状态代码