방법을 설명하기에 앞서 가장먼저 말씀드리자면 Apache Tomcat 8.0.30에서는 작동하지만 Tomcat 8.5에서는 작동하지 않습니다. 아마도 아래와 같은 에러로그를 만날 수 있을 겁니다.
Java.lang.IllegalArgumentException: Invalid character found in the request target. The valid characters are defined in RFC 7230 and RFC 3986
at org.Apache.coyote.http11.Http11InputBuffer.parseRequestLine(Http11InputBuffer.Java:467)
at org.Apache.coyote.http11.Http11Processor.service(Http11Processor.Java:667)
at org.Apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.Java:66)
......
....
...
..
.
8.5버전 이전까지는 아래의 매개 변수를 이용하여 사용할 수 없는 파라메터에 대해서 정의할 수 있었습니다.
Tomcat.util.http.parser.HttpParser.requestTargetAllow
8.5버전 부터는 해당 매개변수를 지원하지 않아 Sever.xml의 Connector 설정에서 별도의 파라메터인 relaxedQueryChars를 통해 설정 할 수 있습니다.
<작성예시>
<Connector port="80"
protocol="HTTP/1.1"
maxThreads="150"
connectionTimeout="20000"
redirectPort="443"
compression="on"
compressionMinSize="2048"
noCompressionUserAgents="gozilla, traviata"
compressableMimeType="text/html,text/xml"
relaxedQueryChars="[,]"
/>
응용 프로그램에 기본적으로 Tomcat에서 지원하지 않는 특수 문자가 더 필요한 경우 relaxedQueryChars 속성에 해당 특수 문자를 쉼표로 구분하여 추가 할 수 있습니다.
마치며...
파이프 기호는 시간이 지남에 따라 브라우저마다 다르게 처리 된 기호입니다. 예를 들어, Chrome 및 Firefox는 복사/붙여 넣기시 파이프가있는 URL을 다르게 변환합니다. 따라서 파이프기호는 사용을 지양하는것이 오류를 줄일 수 있고 우리가 시간을 절약할 수 있는 길입니다.
'Server' 카테고리의 다른 글
[TOMCAT] url parse 오류로 인한 400 Error (0) | 2022.08.10 |
---|---|
[Synoilogy Nas] 시놀로지 DSM 6.0 이후 WinSCP Admin Group으로 로그인 하기 (0) | 2020.07.27 |
[Tomcat] 톰켓 기초 설정 가이드 (1) | 2018.04.12 |
robots.txt 설정 (0) | 2018.01.08 |
[Tomcat] SSL 인증서 설치 방법 (0) | 2016.12.21 |