Chrome在发送大的HTTP头时会失败吗?

uhry853o  于 2023-04-09  发布在  Go
关注(0)|答案(1)|浏览(145)

我一直在解决我的Web应用程序上的一个错误,并得出结论,当我的头部变得太大时,Chrome无法处理我的HTTP请求。

为什么我的头文件很大?

我使用的JWT授权方案包括JWT令牌中的权限。随着我的管理员帐户,令牌随着我对每个租户的权限而增加。JWT目前约为5200个字符。

我为什么要责怪Chrome?

我在几个环境中测试了相同的请求:

  • Swagger:失败,TypeError: Failed to fetch

  • Postman Chrome扩展程序:失败,Could not get any response

  • Postman原生应用:成功

  • 使用请求的Python脚本:成功

  • curl :成功

对于每个测试,我都有相同的头、url和body(没有,因为它是GET)。

注意事项

  • 在研究这个的时候,我遇到了this SO Question,这表明Chrome的头文件限制在250KB以内,我的头文件在6k以下。
  • 如果我使用较小的Authorization头,那么Swagger和Postman Chrome扩展都成功。

底线:

1.我们能证实我的结论,Chrome在更大的头文件上有问题吗?
1.我能做什么?

ktca8awb

ktca8awb1#

我的想法是:
Chrome失败,因为它使用HTTP 2
Postman native使用http 1,这就是它工作的原因。Curl对我来说失败了(如果使用--http1.1,则可以工作)
我还在调查,但这似乎是一个关于最大头大小的服务器端问题。例如http2_max_header_size配置(在旧版nginx中)。现在是large_client_header_buffers,或者在kubernetes,负载均衡器等中类似的配置。

相关问题