본문 바로가기
Tools/Eclipse & STS

[Eclipse] java.lang.IllegalArgumentException: Invalid character found in the request target. The valid characters are defined in RFC 7230 and RFC 3986 (인코딩 에러)

by 썸머워즈 2019. 7. 25.
반응형

- 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로 감싸줬다

그래도 되는거 같더라.

반응형


댓글

TOP