我一直在解决我的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.我能做什么?
1条答案
按热度按时间ktca8awb1#
我的想法是:
Chrome失败,因为它使用HTTP 2
Postman native使用http 1,这就是它工作的原因。Curl对我来说失败了(如果使用--http1.1,则可以工作)
我还在调查,但这似乎是一个关于最大头大小的服务器端问题。例如http2_max_header_size配置(在旧版nginx中)。现在是large_client_header_buffers,或者在kubernetes,负载均衡器等中类似的配置。