我们一直试图在我们的某个系统中追踪一个非常难以捉摸的错误,在向服务器发出多个请求后,我们收到400 Bad Request
错误。我们最终将其跟踪到Spray中的HTTP Header缓存,由于某种原因,nodeCount
中的HttpHeaderParser
变量被设置为值> 32k,因为它后来被转换为Short
,导致溢出。
我们通过禁用HTTP标头缓存(spray.can.server.parsing.header-cache.default = 0
)解决了这个问题。我们试图制作一个可重复的最小项目,但却无法做到。
我的问题是,我们可以期望完全禁用标头缓存有什么影响?我真的不明白为什么它甚至是必要的,因为在每个请求中都必须解析头文件(因为值可能已经改变)。这是通过重用HttpHeader
对象来节省内存吗?