参考链接:https://cloud.tencent.com/developer/news/240970
总结版:
问题:
前端给部署在tomcat的服务端发请求,得到了4xx的http错误码,但是看日志发现前端的请求都没有到服务端代码实现的部分,报错:
Request header is too large
分析:
从日志信息可知,request的header部分太大,超过了tomcat允许的最大值。默认情况下,tomcat(8.0版本)允许的http请求header的最大值是8024个字节(8KB)。
与文章中不同的是,我司服务端的tomcat允许的最大值只有1024kb,而这次新的请求又加了一个很长的效验用请求头,所以导致了这个问题。
解决:
- 增加tomcat允许http header最大值。这个配置参数maxHttpHeaderSize可以设置tomcat允许的http header最大值。
- 减少header的size,比如不要添加无关的header到request。