query params过大引发的failed to load response

enjolras1205

概述

http2 web server 在query params过大时,服务端会返回错误码ENHANCE_YOUR_CALM。因为chrome浏览器在version: 86.0.4240.111中的调试窗口没有显示具体的错误码。定位起来没那么直接。

定位过程

  • 有反馈在大量勾选目标时, 执行指令失败. inspect如图:

image.png

  • 无业务日志. 在业务容器抓包, 请求没到业务容器.
  • 查看access.log, 包体到达了tengne.
  • 在客户端抓包. 如图:

image.png
可以看到, GOAWAY后, 服务端断开了链接. 具体错误如下:
image.png
查阅rfc7540

The endpoint detected that its peer is
exhibiting a behavior that might be generating excessive load.

既然是query param过大引发的服务器断开链接, 从nginx中的文档找到了可能的参数:
http2_max_field_size
改为16k后问题解决.

其它

切换到 http1.1 有类似的错误
http 414

阅读 650

51 声望
3 粉丝
0 条评论
51 声望
3 粉丝
文章目录
宣传栏