본문 바로가기

프로그래밍/이것저것 일하면서

Tomcat 8 / tomcat rfc 7230 rfc 3986 오류

반응형

톰캣의 특정 버전부터는 RFC 7230, RFC 3986에 의해 특수문자를 URI에 허용하지 않는다.

따라서 GET으로 던지던 많은 파라미터에서 문제가 생길 수 있다.

회사에서 되던게 집에서는 안되길래 크롬 개발자도구 네트워크 탭을 보니, URL Encoded 된 Query String에서 [ ] 등의 특수문자가 보였다. 400오류가 발생했고, 서버 콘솔에는 rfc 7230 and rfc 3986 관련 메시지가 떠있었다.


파라미터를 encodeURI 해서 던지거나 톰캣의 server.xml 옵션을 수정해주어야 한다.

나는 회사에서 잡은 개발환경에 맞추기 위해 후자를 택했다.


톰캣 conf/server.xml의 Connector에 다음 부분을 relaxedQueryChars 옵션을 추가해주면 된다.


<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"
URIEncoding="UTF-8"
relaxedQueryChars="[,]"/>


반응형

개발자가 그리는 인스타툰 팔로우하세요!