问题来自于生产的一个批量处理提交操作,当POST请求提交的数据量过大时,就会产生错误,发生例如:超时、504等等现象。惊讶之余,并不着急解决BUG,更想弄清楚为什么POST请求会出现这种情况,第一反应就是打开Apache Tomcat官网去找参数。因为之前有做过容器定制,所以在里面改过不少东西大致清楚在哪里限制了。
下面也不墨迹了直接发链接:http://tomcat.apache.org/tomcat-8.0-doc/config/http.html
作为开发看见红框内的标注,应该就明白什么意思了。 同时根据文档同时也定位了这个参数的具体位置。位于Tomcat /conf/server.xml文件的Connector节点之中,上个截图方便大家知道具体位置吧。
解决办法:
1、按照官方文档,参照tomcat版本,设置下POST请求不限制的参数。8.0版本设置maxPostSize=-1(less than zero即可)
2、除了不限制body大小,也可以根据业务将POST请求中不必要内容进行删减或进行压缩,缩小POST BODY的大小。
总之,能让其满足容器规则就好。