반응형

Error 에러 - Error parsing HTTP request header

 

 

Java WAR로 배포한 Web Application에서 검색조건에 특수문자를 강제한 경우

크롬과는 다르게 인터넷 익스플로러(IE)에서는 에러 발생 및 에러페이지 호출

 

 

[ tomcat catalina log ]

24-Dec-2020 16:25:43.533 INFO [http-nio-8080-exec-2] org.apache.coyote.http11.Http11Processor.service Error parsing HTTP request header
 Note: further occurrences of HTTP request parsing errors will be logged at DEBUG level.
        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:468)
                at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:260)
                at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
                at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:860)
                at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1591)
                at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
                at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
                at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
                at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
                at java.lang.Thread.run(Thread.java:748)
cs

 

 

크롬에서는 자동으로 인코딩해주는 부분을 IE에서는 하지 않는다.

 

1. javascript에서 해당 param을 encodeURI(param)으로 수정

 

2. tomcat의 server.xml에서 relaxedQueryChars 설정 추가 - 브라우저에서 tomcat으로 전달한 문자열 인코딩

[ server.xml ]

    <Connector port="8080" protocol="HTTP/1.1" 
               connectionTimeout="20000"
               redirectPort="8443" 
               URIEncoding="UTF-8" relaxedQueryChars="^{}[]|&quot;&lt;&gt;"
               server=" " />
cs

 

 

반응형