반응형
- The valide characters are defined 인코딩 에러 -
Error parsing HTTP request header
에러가 뜨면서 Exception이 떨어진다.
java.lang.IllegalArgumentException: Invalid character found in the request target. The valid characters are defined in RFC 7230 and RFC 3986
진짜 무슨 난생 처음보는 오류다 항상 느끼는거지만 오류가 참 많다 싶다.
(무슨 에러라고 알려주니까 감사할 나름이다.)
정보: Error parsing HTTP request header
Note: further occurrences of HTTP header 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.InternalInputBuffer.parseRequestLine(InternalInputBuffer.java:194)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1049)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:637)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:318)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Unknown Source)
처음보는 해괴한 숫자와 에러가 떠있지만
알고보면 참 해결하기 쉬운 에러이다.
크롬이나 파이어폭스같은 경우는 URL을 자동으로 인코딩해서 전송해주지만
IE같은 경우는 문자나 한글을 자동적으로 인코딩이 안되기때문에 발생하는 오류라 한다.
그래서 url에 param을 실어서 보내는 부분에 encodeURI(param) 로 감싸주면 이 오류는 해결된다.
location.href = "./mine/it?params="+ encodeURI(param);
물론 파라미터 부분만 encodeURI로 감싸줘도 좋고
나같은 경우는 귀찮아서 파라미터 포함한 url 전부를 encodeURI로 감싸줬다
그래도 되는거 같더라.
반응형
댓글