Tomcat의 최대 URL 길이는 얼마입니까? 그것은 구성 가능합니까? 검색어 매개

그리고 그것은 구성 가능합니까? 검색어 매개 변수가 200K 인 URL이 포함 된 서블릿으로 성공적으로 전달되도록 Tomcat을 설정할 수 있습니까?

예, 많은 데이터가있을 때 POST를 사용해야한다는 것을 알고 있습니다. 이 특별한 경우에는 덜 유쾌한 옵션입니다. 포함 된 애플리케이션 (검색 엔진)은 GET 요청이 검색을 수행 할 것으로 예상합니다.



답변

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에 한계가 있는지 쉽게 테스트하고 오류가 발생하고 절반으로 내려가는 매우 긴 요청으로 시작하는 다른 요청을 사용 하여이 한계가 무엇인지 알아낼 수 있습니다. 그런 다음 이분법을 사용하여 정확한 값을 빠르게 찾으십시오.


답변

AJP 커넥터의 경우 packetSize속성 을 조정해야 합니다.

<Connector port="8009"
    protocol="AJP/1.3"
    packetSize="65536" />

답변

Tomcat 서버에서 구성을 변경할 수 있습니다 (.. \ Tomcat 6.0 \ conf \ server.xml)

<커넥터 포트 = “8983”maxHttpHeaderSize = “100000”protocol = “HTTP / 1.1″connectionTimeout = “20000”redirectPort = “8443”/>