query params過大引起的failed to load response

概述

http2 web server 在query params過大時,服務端會返回錯誤碼ENHANCE_YOUR_CALM。由於chrome瀏覽器在version: 86.0.4240.111中的調試窗口沒有顯示具體的錯誤碼。定位起來沒那麼直接。html

定位過程

  • 有反饋在大量勾選目標時, 執行指令失敗. inspect如圖:

image.png

  • 無業務日誌. 在業務容器抓包, 請求沒到業務容器.
  • 查看access.log, 包體到達了tengne.
  • 在客戶端抓包. 如圖:

image.png
能夠看到, GOAWAY後, 服務端斷開了連接. 具體錯誤以下:
image.png
查閱rfc7540nginx

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

既然是query param過大引起的服務器斷開連接, 從nginx中的文檔找到了可能的參數:
http2_max_field_size
改成16k後問題解決.web

其它

切換到 http1.1 有相似的錯誤
http 414chrome

相關文章
相關標籤/搜索