본문 바로가기
3. 웹개발/3_4 환경설정 & etc

[Tomcat] Post 전송방식에서의 Parameter size와 갯수 설정

by 갓대희 2018. 11. 10.
반응형

[Tomcat] Post 전송방식에서의 Parameter size와 갯수 설정




안녕하세요. 갓대희 입니다. 이번 포스팅은 [ Post Parameter 사이즈, 갯수 설정  ] 입니다. : ) 


Tomcat에서 POST 처리가 잘 안될 때


 서블릿 구조에서 스프링 구조 수정 UI 변경, DB 설계변경 등등 사이트 전면개편 업무를 진행 한 적이 있었다.


로컬개발 환경 구성시 WAS는 대부분 톰캣(Tomcat)을 기반으로 개발을 하고 있을 것이다.


개발 도중 한번에 엄청나게 많은 내용을 등록하는 부분이 있었다.


Post방식으로 통신 하였고, parameter는 수백개, 하나의 parameter도 엄청나게 긴 내용들이 포함되어 있는 화면이 였다. 


아니나 다를까 Post방식에는 용량, 개수 제한이 없다고 들었었는데 파라미터의 짤림현상이 발생하였고, 값이 null로 넘어오는 경우도 발생하는 등 몇시간을 삽질한 후 해결할 수 있었다.


이때 필요한 설정이 maxPostSizemaxParameterCount이다. 


paramter 갯수, 사이즈 크기를 설정 가능 하며, 무한대로 설정 할 수도 있다.


그 방법과 관련되어 포스팅을 본 후에도 꼭 한번 다음 Guide 문서를 확인 해보자.


나와같은 경우 대부분 Tomcat 7, 8버전 에서 개발 하고있고 아직 9버전은 사용 해 본적은 없다.

http://tomcat.apache.org/tomcat-7.0-doc/config/http.html

http://tomcat.apache.org/tomcat-8.0-doc/config/http.html

http://tomcat.apache.org/tomcat-9.0-doc/config/http.html


난 7버전 기준으로 확인해 보겠다.



▶ maxParameterCount => 최대 Parameter 갯수


The maximum number of parameter and value pairs (GET plus POST) which will be automatically parsed by the container. Parameter and value pairs beyond this limit will be ignored. A value of less than 0 means no limit. If not specified, a default of 10000 is used. Note that FailedRequestFilter filter can be used to reject requests that hit the limit.


=> 0보다 작은 수로 설정할 경우 무제한

=> default설정은 10000개



▶ maxPostSize => 최대 Post사이즈


The maximum size in bytes of the POST which will be handled by the container FORM URL parameter parsing. The limit can be disabled by setting this attribute to a value less than zero. If not specified, this attribute is set to 2097152 (2 megabytes). Note that the FailedRequestFilter can be used to reject requests that exceed this limit.


=> 0보다 작은 수로 설정할 경우 무제한

=> default설정은 2097152 (2 MB)


※ 주의


=> Tomcat7의 특정 버전 이하의 경우 무제한 설정이 0 또는 그 이하라고 되어있다.

그렇기 때문에 6점대 버전을 사용 했을 경우 0으로 설정 했을때도 무제한 이었기 때문에 7점대 이상에서도 0으로 설정하면 무제한으로 설정된다고 착각하실 수도 있다.



▶ 사용예시


<Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443" URIEncoding="euc-kr" maxPostSize="-1" maxParameterCount="-1" />




반응형

댓글0