首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

记一次请求接口出现400响应码的诡异错误实录

1 前言 最近业务碰到了一个诡异的400接口请求异常,部门用户通过浏览器访问会出现400响应码错误,部分用户又能正常访问。该接口用postman请求访问,都能正常返回数据。...后端写客户端请求该接口,也都能返回正常的数据。本文就来记录一下这次问题 2 简化版整体请求链路 如图 3 问题排查过程 因为不管是用postman或者是后端自己写客户端请求,都能返回正常的数据。...请求行如果超过一个缓冲区的大小,就会向客户端返回414(请求URI太大)错误。请求头字段也不能超过一个缓冲区的大小,否则会向客户端返回400(错误请求)错误。缓冲区仅按需分配。...看到这里我们似乎看到曙光,因此我们果断把该参数加上,并调高相应的配置值,本以为可以高枕无忧,结果配上去,那偌大的400错误,感觉就是在嘲讽我们的天真。...token的长度是比较大 5 总结 此次400响应码错误的问题,除了技术层面上,还有一些是规范上的,比如请求头加了了一堆无用的参数,其次为了方便,在token上搞了一堆业务数据,有些bug真的是无意识产生的

73010

记一次请求接口出现400响应码的诡异错误实录

前言最近业务碰到了一个诡异的400接口请求异常,部门用户通过浏览器访问会出现400响应码错误,部分用户又能正常访问。该接口用postman请求访问,都能正常返回数据。...后端写客户端请求该接口,也都能返回正常的数据。本文就来记录一下这次问题整体简化版请求链路如图问题排查过程因为不管是用postman或者是后端自己写客户端请求,都能返回正常的数据。...请求行如果超过一个缓冲区的大小,就会向客户端返回414(请求URI太大)错误。请求头字段也不能超过一个缓冲区的大小,否则会向客户端返回400(错误请求)错误。缓冲区仅按需分配。...看到这里我们似乎看到曙光,因此我们果断把该参数加上,并调高相应的配置值,本以为可以高枕无忧,结果配上去,那偌大的400错误,感觉就是在嘲讽我们的天真。...token的长度是比较大总结此次400响应码错误的问题,除了技术层面上,还有一些是规范上的,比如请求头加了了一堆无用的参数,其次为了方便,在token上搞了一堆业务数据,有些bug真的是无意识产生的,轻描淡写的一篇文章

56510
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    RESTful API接口设计规范与最佳实践

    按照一般的经验,像这种”标准化“的设计,我们会封装一些基础方法来实现接口的调用和数据接收,但现实却是无法实现的。...那么这里问题就来了,既然HTTP的请求方法类型有助于我们理解一个接口的作用,为什么在有些接口中唯独只会使用GET和POST呢?...成功请求并创建了新的资源 400 Bad Request 业务错误,语义有误,当前请求无法被服务器理解 401 Unauthorized 认证失败,当前请求需要用户验证 403 Forbidden 无权限调用接口...,服务器已经理解请求,但是拒绝执行它 404 Not Found 服务器无法根据客户端的请求找到资源(网页)。...,无法完成请求 从上面表格可以看出,HTTP码是用于标识本次请求响应的结果状态,通过HTTP状态我们可以直观的判断出本请求是不是成功的,但是为什么有些接口设计的情况是无论成功与否都只会返回200的状态码呢

    1.2K10

    软件测试测试开发|如何定位bug,一篇文章告诉你

    简介在我们对软件进行测试时,遇见bug是无法避免的,但是我们如何对出现的bug进行定位呢?bug究竟是哪个原因引起的就是我们解决bug的关键所在了,本文就来介绍一下如何定位bug。...随着对业务架构逻辑的理解,反过来又会促进对问题的定位。可以降低缺陷率。这个可以说是最重要的。在bug系统中,我们会要求开发人员记录bug产生的原因。...提BUG这块,还是要体现出测试的专业性,标题简洁、问题环境标识清楚、问题详细描述清楚、系统错误表象贴图、接口传参返参贴图、必要时贴服务器日志,总结来说不该少的bug标签一个不要少。1....关注请求的入参与响应数据通过访问报错的页面,加载错误请求时我们通过开发者工具进行分析请求包,查看对应的入参以及响应数据。...请求入参错误,那么该bug属于前端的错误;入参标准可以根据前端页面的输入的内容或者选择的内容,进行核验,入参格式以及是否必填等可以对应接口文档去进行分析或跟开发确认求未响应或者响应数据错误,那么该bug

    47410

    软件测试测试开发|如何定位bug,一篇文章告诉你

    简介 在我们对软件进行测试时,遇见bug是无法避免的,但是我们如何对出现的bug进行定位呢?bug究竟是哪个原因引起的就是我们解决bug的关键所在了,本文就来介绍一下如何定位bug。...随着对业务架构逻辑的理解,反过来又会促进对问题的定位。 可以降低缺陷率。这个可以说是最重要的。在bug系统中,我们会要求开发人员记录bug产生的原因。...提BUG这块,还是要体现出测试的专业性,标题简洁、问题环境标识清楚、问题详细描述清楚、系统错误表象贴图、接口传参返参贴图、必要时贴服务器日志,总结来说不该少的bug标签一个不要少。 1....关注请求的入参与响应数据 通过访问报错的页面,加载错误请求时我们通过开发者工具进行分析请求包,查看对应的入参以及响应数据。...请求入参错误,那么该bug属于前端的错误;入参标准可以根据前端页面的输入的内容或者选择的内容,进行核验,入参格式以及是否必填等可以对应接口文档去进行分析或跟开发确认 求未响应或者响应数据错误,那么该bug

    18710

    如何使用SpringMvc处理Rest异常

    那么我们应该如何用springmvc产出更符合restful的错误信息呢? restful异常处理设计 若有异常发生,rest建议我们通过设置HTTP状态码的方式大体地区分失败的原因。...但我们其实还可以增加更多信息,以提供一个又直观又很有帮助的错误描述。...这是一个便捷通道:把状态码在响应体里也放一份,那么所有rest客户端处理错误时,只需要看响应体这一个地方就可以完整地理解错误:错误自表述了,不需要去检查响应头或其他地方才能明白了。...复制一个状态码放在响应体里不是不可以,但是“让客户端不需要去响应头里看状态码”是无法达成的。...服务端无法保证这些节点发生错误也会遵照作者上述的做法,所以客户端就无论如何都得考虑处理这些情况,而处理这些情况就必须从响应头里获取状态码。

    1.3K00

    接口自动化测试面试题大全(合适各级软件测试人员),建议收藏

    内容是很干货的!对我也很有帮助。本文仅做个分享~ 下面我们进入正题—接口自动化测试面试题 一、get和post的区别?    ...302:临时重定向到某一个页面,比如要登录之后才能进入的页面,他首先会临时重定向到登录界面     403:权限不够 服务器理解客服端的请求,但拒绝此请求     503:服务端目前无法使用,过载或者维护中...这系列中最常见的有301、302状态码。     4XX系列:表示请求错误。代表了客户端看起来可能发生了错误,妨碍了服务器的处理。常见有:401、404状态码。    ...5xx系列:代表了服务器在处理请求的过程中有错误或者异常状态发生,也有可能是服务器意识到以当前的软硬件资源无法完成对请求的处理。常见有500、503状态码。 三、自动化测试怎么校验结果?...Content-Type来指定不同参数类型 八、如何从上一个接口获取相关的响应数据传递到下一个接口?

    2.3K40

    喵星人教你 HTTP 状态码

    比如: •1xx:消息•2xx:成功•3xx:重定向•4xx:客户端错误•5xx:服务器错误 熟记这些状态码可以让我们在快速定位 Web 开发中遇到的问题、编写符合规范的接口服务,那么下面就让我们看看这些死板的...服务器已经理解了客户端的请求,并将通过 Upgrade 消息头通知客户端采用不同的协议来完成这个请求。 二、2xx 成功 这一类型的状态码,代表请求已成功被服务器接收、理解、并接受。...四、4xx 客户端错误 这类的状态码代表了客户端看起来可能发生了错误,妨碍了服务器的处理。 400 Bad Request(错误请求) ? 服务器不理解请求的语法。...五、5xx 服务器错误 这类状态码代表了服务器在处理请求的过程中有错误或者异常状态发生,也有可能是服务器意识到以当前的软硬件资源无法完成对请求的处理。...500 Internal Server Error(服务器内部错误) ? 服务器遇到错误,无法完成请求。 502 Bad Gateway(错误网关) ?

    68120

    Requests库(五)接口返回状态码

    接口返回状态码。 ---- 接口请求,返回的状态码肯定是不一样的,我们需要提前处理,不然就会报错。不信你可以看看下面代码的执行。...那么我们如果按照正常的去处理,而不是事先去处理接口的状态码。我们的接口可能请求就会出错了。那么我们应该先知道状态码有哪些,才可以更好的来判断? 状态码一共有5种。...使用GET请求重定向 400 Bad Request 客户端请求的语法错误,服务器无法理解 401 Unauthorized 请求要求用户的身份认证 402 Payment Required...保留,将来使用 403 Forbidden 服务器理解请求客户端的请求,但是拒绝执行此请求 404 Not Found 服务器无法根据客户端的请求找到资源(网页)。...如果只是服务器暂时无法处理,则会包含一个Retry-After的响应信息 414 Request-URI Too Large 请求的URI过长(URI通常为网址),服务器无法处理 415 Unsupported

    4.4K10

    接口设计技巧和最佳实践

    7、不要依赖普通的硬编码错误信息 接口返回错误时,在响应正文中应该包括严格定义的错误对象,对象一般包括内部代码和附加信息 8、不要使用数字枚举 9、不要返回非封装的响应...使用对象作为根响应容器以允许后续添加任意数量的字段而不会导致弃用,比如我们可以使用is_available布尔值标识book的状态,但是它没有表明为啥是不可用状态?...,资源的URI和其他信息都是动态发现的,当服务端发送变化时,客户端并不需要做出修改 12、考虑让你的接口结果可缓存 客户端可以缓存服务器返回的响应结果,服务器可以定义响应结果的缓存时长设置...13、为你的接口实现限流 API确实实施了速率限制的话,请务必通过响应提供其当前状态来告知你的调用者 14、考虑让你的接口返回支持字段过滤 客户端请求可以指定希望服务端在响应中包括哪些字段或者排除哪些字段...,这样可以有效处理响应膨胀 15、接口支持高级分页 分页可以减少客户端接收的数据数目,但是当你需要将分页结果与不断接收的新条目结合时,通常的限制limit和偏移offset分页参数是低效的

    1.4K60

    Jmeter压测工具入门篇

    背景:本文档主要内容是jmeter脚本入门配置以及调试方法,借助已有的jmeter脚本模板,快速理解并写出一个成功的jmeter脚本用例。...以下是常见状态码:200:服务器已经成功处理了请求400:错误请求,服务器不理解请求的语法401:未授权,通常是未登录或者登陆态失效503:服务不可用,无法处理请求?...以下是常见状态码:200:服务器已经成功处理了请求400:错误请求,服务器不理解请求的语法401:未授权,通常是未登录或者登陆态失效503:服务不可用,无法处理请求?...3.2.3 响应数据中分两部分,一部分是响应体,一部分是响应头??3.3 调试结果查看-jmeter日志查看器当脚本运行后,查看结果树中无响应的时候,可以查看日志进行错误分析。...日志模块中错误信息一般会以info或者error的前缀打印出来

    3.2K61

    网络 Ping 不通的原因及解决方法

    Ping 不通意味着当前设备无法与目标设备建立正常的网络通信,这通常提示了网络存在某种程度的故障。那么,当网络 Ping 不通时,我们该如何有效地进行排查与解决呢?...这种情况通常包括以下几种:网线损坏或松动:网线可能存在内部断裂或未正确插入网络接口。网络接口故障:网卡或网络端口硬件故障会导致无法接收或发送网络信号。...常见的配置问题包括:IP 地址冲突:两个设备使用相同的 IP 地址,导致数据包无法正确传输。子网掩码或网关配置错误:子网掩码或网关设置不正确可能导致本地设备无法访问其他网络。...路由配置错误:路由器的路由表配置错误,导致数据包被转发到错误的目的地。环路问题:网络中存在环路,导致数据包无法正常到达目标设备。...目标设备故障或无响应有时目标设备可能由于自身故障而无法响应 Ping 请求。这种情况可能包括:目标设备关机或掉线。目标设备的网络协议栈故障。目标设备的防火墙或 ICMP 设置禁止响应。

    3.2K20

    快速上手|HTTP 接口功能自动化测试

    HTTP接口功能测试   的相关知识  1http相关知识  1)、HTTP协议的URL   HTTP(超文本传输协议)是一个基于请求与响应模式的、无状态的、应用层的协议,常基于TCP的连接方式,HTTP1.1...时,必须以“/”的形式给出,通常这个工作浏览器自动帮我们完成。   ...状态代码有三位数字组成,第一个数字定义了响应的类别,且有五种可能取值:   1xx:指示信息–表示请求已接收,继续处理;   2xx:成功–表示请求已被成功接收、理解、接受;   3xx:重定向–要完成请求必须进行更进一步的操作...;   4xx:客户端错误–请求有语法错误或请求无法实现;   5xx:服务器端错误–服务器未能实现合法的请求;   b、响应正文就是服务器返回的资源的内容。  ...,如果发现错误手工修正为预期文件。

    98010

    RESTful 架构详解

    通用错误响应 503 (Service Unavailable)- 服务端当前无法处理请求 POST 不安全且不幂等 使用服务端管理的(自动产生)的实例号创建资源 创建子资源 部分更新资源 如果没有被修改...503 (Service Unavailable)- 服务端当前无法处理请求 下面我们来看一些实践中常见的问题: POST和PUT用于创建资源时有什么区别?...如果这些所谓的RESTful应用必须通过响应实体才能给出错误信息,那么SOAP就是这样的了,它就能够满足了。 2. 3 资源的表述 上面提到,客户端通过HTTP方法可以获取资源,是吧?...2. 4 资源的链接 我们知道REST是使用标准的HTTP方法来操作资源的,但仅仅因此就理解成带CURD的Web数据库架构就太过于简单了。...这种无状态通信原则,使得服务端和中介能够理解独立的请求和响应。 在多次请求中,同一客户端也不再需要依赖于同一服务器,方便实现高可扩展和高可用性的服务端。

    98320

    jmeter4.0执行HTTP请求报400,jmeter5.1运行正常解决方法

    最近经常接触有测试人员脚本在jmeter4.0运行失败,返回Response code: 400,HTTP返回400,官方解释是”Bad Request 客户端请求的语法错误,服务器无法理解”,在...响应数据Response headers ? 5. 响应数据Response headers ? 三、问题分析 1....经过对比jmeter4.0和jmeter5.1请求表头差异,可以看出他们的请求默认表头不一样,Jmeter5.1 HTTP接口 默认Content-Type类型为text/plain; Jmeter4.0...HTTP接口默认Content-Type类型为application/x-www-form-urlencoded,由于性能测试脚本HTTP接口表头类型就是text/plain,所以执行成功 ?...所以我们只需要在脚本中自己添加一个信息头管理器,然后申明为text/plain就行,右键测试计划》添加》配置元件》HTTP信息头管理器 ? 4.

    3.3K42

    RESTful架构详解 转

    通用错误响应 503 (Service Unavailable)- 服务端当前无法处理请求 POST 不安全且不幂等 使用服务端管理的(自动产生)的实例号创建资源 创建子资源 部分更新资源 如果没有被修改...) 415 (unsupported media type)- 接受到的表示不受支持 500 (internal server error)- 通用错误响应 503 (Service Unavailable...503 (Service Unavailable)- 服务端当前无法处理请求 下面我们来看一些实践中常见的问题: POST和PUT用于创建资源时有什么区别?...如果这些所谓的RESTful应用必须通过响应实体才能给出错误信息,那么SOAP就是这样的了,它就能够满足了。 2. 3 资源的表述 上 面提到,客户端通过HTTP方法可以获取资源,是吧?...这种无状态通信原则,使得服务端和中介能够理解独立的请求和响应。 在多次请求中,同一客户端也不再需要依赖于同一服务器,方便实现高可扩展和高可用性的服务端。

    84731

    HTTP Status Code

    比如: - 1xx:消息 - 2xx:成功 - 3xx:重定向 - 4xx:客户端错误 - 5xx:服务器错误 熟记这些状态码可以让我们在快速定位 Web 开发中遇到的问题、编写符合规范的接口服务,那么下面就让我们看看这些死板的...四、4xx 客户端错误 这类的状态码代表了客户端看起来可能发生了错误,妨碍了服务器的处理。 400 Bad Request(错误请求) 服务器不理解请求的语法。...406 Not Acceptable(不接受) 请求的资源的内容特性无法满足请求头中的条件,因而无法生成响应实体,该请求不可接受。...五、5xx 服务器错误 这类状态码代表了服务器在处理请求的过程中有错误或者异常状态发生,也有可能是服务器意识到以当前的软硬件资源无法完成对请求的处理。...500 Internal Server Error(服务器内部错误) 服务器遇到错误,无法完成请求。 502 Bad Gateway(错误网关) 服务器作为网关或代理,从上游服务器收到无效响应。

    1.2K10

    这到底是前端还是后端Bug

    ,我们需要对前端和后端的划分,有基本的了解,即哪些部分是属于前端,哪些部分是属于后端 前端相对比较好理解,我们打开Web网站看到的HTML5(简称H5)页面,打开手机APP看到的Native页面或者H5...因此,如果后端接口A返回字段有问题,就会导致点击按钮后无响应的结果。...3xx Redirection 重定向状态码 需要进行附加操作以完成请求 4xx Client Error 客户端错误状态码 服务器无法处理 5xx Server Error 服务端错误状态码 服务器处理请求出错...前端 接口响应HTTP状态码为4xx 前端 接口请求参数传入错误 前端 问题只在单端出现(安卓出现,IOS正常) 后端 接口返回字段错误 后端 接口响应HTTP状态码为5xx 前后端问题排查思路 前面我们谈到了如何定位前端还是后端问题...,函数返回值,上下游接口调用,数据库操作这几个地方 结束语 在实际工作当中,我们会遇到各种各样的问题,当我们遇到问题后,先冷静分析并充分理解需求,看是测试环境有问题,还是真的有Bug。

    1.2K21

    面试必问:如何快速定位BUG?BUG定位技巧及N板斧!

    4.自己在这个过程中能学到很多东西,有助于理解产品内部逻辑,对架构的理解,以及数据流是怎样的走向。随着对业务架构逻辑的理解,反过来又会促进对问题的定位。 5.可以降低缺陷率。这个可以说是最重要的。...500,则表示是服务器内部错误,503网络过载导致服务端延时,502服务器崩溃等,具体可百度 3.关注请求的入参与响应数据 通过访问报错的页面,加载错误请求时我们通过F12进行分析请求包,查看对应的入参以及响应数据...例如:请求入参错误,那么该bug属于前端的错误;入参标准可以根据前端页面的输入的内容或者选择的内容,进行核验,入参格式以及是否必填等可以对应接口文档去进行分析或跟开发确认 例如:请求未响应或者响应数据错误...等,浏览器界面UI兼容性以及插件,或者APP、小程序类调用手机相关功能拍照、语音无法正常调用直接找前端 下面我们就来说说测试人员定位问题的N板斧。...如果是响应内容不正确的后端问题,那就要继续深挖,是接口吐数据的时候出错了,还是数据库中的数据就错了,还是缓存中的数据错了(如果用到了缓存的话)。

    2K22

    使用ASP.NET Core 3.x 构建 RESTful API - 5.1 输入验证

    而通常响应的Body里面会包含一组验证错误信息,API消费者可以把这些信息展示给API消费者的用户。...实现IValidatableObject接口。 验证什么? 验证的是输入数据,而不是输出数据。...之前也讲过 422 表示服务器理解了entity的Content-Type,并且语法也正确,但是仍然无法处理所包含的结构数据。例如:语法正确,但是语义不正确。...当报告验证错误信息的时候,我们不仅要使用正确的状态码,还需要在响应的body里面包含验证错误信息。...REST并没有规定返回的错误信息的格式,但是有一个标准却规定了此事:Validation Problem Details RFC,它定义了这样的响应的body应该是什么样的。

    64510
    领券