728x90
- target: Tomcat에서 jsessionid가 URL에 붙는 현상 비활성화
- method:
- Tomcat서버에서 <c:url> 태그 사용 시, 브라우저에서 사이트 최초 호출 시, URL에 jsessionid가 붙게 됨
<!-- index.jsp -->
<script type="text/javascript">
document.location.href="<c:url value='/cmm/main/mainPage.do'/>";
</script>
- 실제 호출된 URL
http://localhost:8080/webapp/cmm/main/mainPage.do;jsessionid=1BASU4326JSNCBDY125HJAKDH2A
- 해당 현상으로 인한 문제점
: 필요한 자원이 제대로 다운로드 되지 않는 현상으로 인하여 화면이 깨지는 현상이 발생할 수 있음
<!-- 예를 들어, header.jsp에 미리 선언한 css나 js에 대한 로딩이 불가 -->
<!-- 이미지가 정상적으로 로딩되지 않음 -->
<style link="<c:url value='/webapp' />/resources/css/common.css"/>
<script src="<c:url value='/webapp' />/resources/js/jquery-min.js"></script>
...
(중략)
...
<img src="<c:url value='/webapp' />"/resources/images/logo.png"/>
<!-- 위와 같이 선언한 경우, 실제 아래와 같이 호출 시도 -->
<style link="/webapp;jsessionid=234698BNASDJIWJ1JDGFKAJD/resources/css/common.css"/>
<script src="/webapp;jsessionid=234698BNASDJIWJ1JDGFKAJD/resources/js/jquery-min.js"></script>
...
(중략)
...
<img src="/webapp;jsessionid=234698BNASDJIWJ1JDGFKAJD/resources/images/logo.png"/>
- solution:
1. Source 수준에서의 해결안
<!-- jstl 방식으로 변경 -->
<style link="${pageContext.request.contextPath}/resources/css/common.css"/>
<script src=${pageContext.request.contextPath}/resources/js/jquery-min.js"></script>
<img src="${pageContext.request.contextPath}/resources/images/logo.png"/>
2. Server 수준에서의 해결안
- Tomcat에서 애초에 URL rewriting 자체를 비활성화
<!-- server.xml(Tomcat 6.0.30 이상) -->
<Context docBase="" path="/webapp" disableURLRewriting="true" reloadable="true" />
<!-- web.xml(Tomcat 7이상 & Servlet 3.0 spec 이상) -->
<session-config>
<session-timeout>3600</session-timeout>
<tracking-mode>COOKIE</tracking-mode>
</session-config>
- desc:
- 해당 내용은 버그가 아닌 의도적으로 설계된 부분
- 새로운 session이 만들어지면 client에서는 쿠키를 지원하는지 여부를 서버가 알 수 없으므로, 쿠키와 URL에 모두 jsessionid가 생성
- client가 두 번째 요청부터 session cookie를 보내오면 URL에 jsessionid를 붙이지 않고, 쿠키가 없으면 계속 URL에 jsessionid를 붙이게 됨
- source:
https://offbyone.tistory.com/339
Tomcat에서 jsessionid가 URL에 붙는것 비활성화 하기
Tomcat서버에서 스프링 프레임웍의 태그를 사용할 경우 최초 호출시 URL에 jsessionid 가 붙여지게 됩니다. 이것은 버그가 아니고 의도적으로 설계된 것입니다. 새 세션이 만들어지면 클라이언트가
offbyone.tistory.com
728x90
'Dev > Server' 카테고리의 다른 글
[Exception] java.sql.SQLRecoverableException: IO 오류 (0) | 2022.06.30 |
---|---|
[Apache] 설정 파일의 주석 위치에 따른 Apache 응답 속도 저하 (0) | 2022.06.28 |
[Web/WAS] Apache - Tomcat 연동 (mod_proxy / mod_proxy_ajp) (0) | 2022.06.24 |
[Docker] hostname (0) | 2022.06.20 |
[Maven] Maven build시 profile 설정 (0) | 2022.06.20 |