답변:
tomcat / conf / server.xml의 HTTP / 1.1 커넥터 항목을 편집하고 maxHttpHeaderSize = "65536"을 추가하여 기본 최대 8K 정도에서 64K로 증가시킬 수 있습니다. 필자는이 숫자를 필요한만큼 높일 수 있다고 생각하지만 64K는 현재 내 요구에 충분하므로 시도하지 않았습니다.
<Connector port="8080" maxHttpHeaderSize="65536" protocol="HTTP/1.1" ... />
Microsoft가 IE 최대 길이 지원 페이지에 대해보고 한 것처럼 RFC2616 에서는 HTTP GET 요청 길이를 적용하지 않습니다 .
따라서 최대 GET 길이는 클라이언트 (브라우저) 관련 문제 입니다. 사람들이 앱을 사용하는 경우 특정 브라우저를 사용하도록 강요하면이 브라우저가 지원하는 길이를 간단히 찾을 수 있습니다.
모든 경우에 나는 쿼리 문자열 (서버 쪽 앱에 매개 변수를 가져 오는 요청 부분, 결국 "?"다음에 오는 요청)에 대한 브라우저 관련 문제에 대해 Wikypedia 페이지를 살펴볼 것을 제안합니다 .
물론 바람둥이는 서버 쪽에서도 한계를 둘 것입니다. RFC는 말합니다 :
서버는 서비스를 제공하는 모든 리소스의 URI를 처리 할 수 있어야하며, 이러한 URI를 생성 할 수있는 GET 기반 양식을 제공하는 경우 무제한 길이의 URI를 처리 할 수 있어야합니다. 서버가 처리 할 수있는 것보다 URI가 긴 경우 서버는 414 (Request-URI Too Long) 상태를 반환해야합니다 (섹션 10.4.15 참조).
따라서 Tomcat에 한계가 있는지 쉽게 테스트하고 오류가 발생하고 절반으로 내려가는 매우 긴 요청으로 시작하는 다른 요청을 사용 하여이 한계가 무엇인지 알아낼 수 있습니다. 그런 다음 이분법을 사용하여 정확한 값을 빠르게 찾으십시오.
Tomcat 서버에서 구성을 변경할 수 있습니다 (.. \ Tomcat 6.0 \ conf \ server.xml)
<커넥터 포트 = "8983"maxHttpHeaderSize = "100000"protocol = "HTTP / 1.1"connectionTimeout = "20000"redirectPort = "8443"/>
server.xml
구성 의 기본 8192 제한을 알지 못하고 갑자기 긁은 것처럼 보입니다 . 고통스러운 문제 : 아무것도 기록되지 않았으며 연결이 자동으로 끊어졌습니다 (더 이상 HTTP 상태를 기억하지 않습니다). 이전 에 tomcat.apache.org/tomcat-5.5-doc/config/http.html 의 문서를 우연히 발견 했지만maxHttpHeaderSize
GET 요청 쿼리 매개 변수 자체와 관련이있는 이름이나 설명으로 연결하지 않았습니다 .