반응형
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="^{}[]|"<>" server=" " /> | cs |
반응형