get请求行过大导致服务器响应400

问题现象:

用户反馈功能异常查询接口响应日志返回状态码为400;

复现问题:

        app相同版本尝试复现,多台设备无法复现;

        相同链接postman直接发送请求无法复现;

        测试同学通过谷歌浏览器偶然复现(上午还无法复现,下午相同链接复现了)

排查链路:

        公共nginx检查large_client_header_buffers 4 128k;

        容器ingress large_client_header_buffers 4 128k;

        web应用springboot ,未配置,默认8KB;

目前看最大值短板在web应用,配置:server.max-http-header-size=128KB;

调整验证,不在报400错误;ps:客户端在做参数加密处理的时候要考虑下加密完请求行的大小,同步服务端,调整最大请求头大小;一般不加密的get请求没有这个问题;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 当你发送GET请求到后端服务器时,服务器会解析请求并返回响应响应通常由HTTP状态码,响应头和响应体组成。 HTTP状态码是一个3位数字,用于表示请求的处理结果。常见的状态码包括: - 200 OK - 请求成功 - 404 Not Found - 请求的资源不存在 - 500 Internal Server Error - 服务器内部错误 响应头包含一些元数据,如Content-Type(响应体的MIME类型)、Content-Length(响应体的长度)、Cache-Control(缓存控制)等。 响应体是服务器返回的实际数据,可以是HTML、JSON、XML等格式的文本,也可以是二进制文件。 当你收到响应后,可以解析响应头和响应体,以获取所需的数据。 ### 回答2: 当客户端发起一个GET请求时,以下是后端服务器响应过程: 1. 客户端发起GET请求,包含请求的URL、参数、头部信息等。 2. 后端服务器接收到GET请求。 3. 服务器根据请求的URL和参数,判断需要处理这个请求的处理程序或者对应的资源文件。 4. 服务器根据请求的URL和参数,从数据库或者其他数据源中获取所需数据。 5. 如果需要,服务器对获取的数据进行处理、加工或者计算。 6. 服务器生成响应的内容,包括响应头部信息和响应主体内容。 7. 服务器将生成的响应发送给客户端。 8. 客户端接收到服务器响应。 9. 客户端根据响应的内容对接收到的数据进行解析和处理,如果是HTML页面的话,就渲染显示;如果是其他数据格式的话,就进行相应的操作。 10. 客户端根据需要对响应进行处理,比如缓存响应内容、提取数据、调用相关操作等。 11. 客户端完成对响应的处理后,根据需要可能会发起其他请求或者进行其他操作。 总之,GET请求时客户端向后端服务器请求数据,后端服务器根据请求参数和URL从数据库或其他数据源中获取所需数据,再将响应发送给客户端,客户端接收响应后进行解析和处理。 ### 回答3: 当前端发起一个GET请求时,首先会向后端服务器发送一个HTTP请求。在请求的URL中可以包含查询参数,以便将需要的信息发送给后端服务器。后端服务器接收到这个请求后,会解析URL中的参数,并根据参数中的信息来执行相应的处理逻辑。 后端服务器可以根据请求的URL来确定需要执行的代码逻辑,例如从数据库中获取数据、进行计算、生成HTML页面等等。服务器执行完相应的处理逻辑后,会生成响应数据,然后将响应数据发送回前端。 在返回响应数据之前,服务器需要设置一些HTTP头部,例如Content-Type代表响应数据的类型(如application/json表示JSON数据、text/html表示HTML数据等),Content-Length表示响应数据的长度等。 当前端接收到服务器发回的响应数据后,会根据Content-Type来确定如何解析处理这些数据。如果是JSON数据,前端可以使用JSON.parse()来将数据转换为JavaScript对象。如果是HTML数据,前端可以直接将数据插入到DOM中,以显示页面内容。 除了响应数据外,服务器还可以设置响应的状态码,以指示请求的处理结果。常见的状态码如200表示请求成功,400表示请求有语法错误,404表示请求的资源不存在等。 综上所述,当前端发起一个GET请求时,后端服务器会解析请求URL中的参数,执行相应的处理逻辑,生成响应数据并设置响应的状态码和头部信息,最后将响应数据发送给前端,前端根据响应的Content-Type来解析和处理数据。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值