일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- abstract
- array
- ArrayList
- Class
- collection
- coposition api
- csr
- database
- db
- DDL
- default
- DML
- Exception
- Generic
- HashSet
- Interface
- Java
- Java 입문
- java 자료형
- java 클래스
- JavaBean
- javabeans
- JAVA의 특징
- JSESSIONID
- LinkedList
- linkedset
- list
- mariadb
- Mpa
- Mustache
Archives
- Today
- Total
GeehDev
[Spring boot] URL 또는 리소스 경로에 ;jsessionid 발생 시 해결방법 본문
Index
반응형
발생상황
- 최초 접속 시 CSS/JS/이미지 등 정적 리소스 파일을 불러오지 못하고 전부 깨지는 현상 발생
=> 개발자 도구 내 console 창에 각 리소스 파일 404 오류 발생 - URI 경로를 체크하는 JS로직이 있었는데 URI 경로에
;jsessionid
값이 붙어 정상적으로 처리하지 못함
원인
- URL 경로에
;jsessionid
값이 붙음 - CSS/JS/이미지 경로 등 정적 리소스 경로에
;jsessionid
값이 붙음
<link rel="stylesheet" href="/css/common.css;jsessionid=%5B%5B%~~~?v=20241209">
위와 같은 상황이 원인이었고, 이는 톰캣 등 특정 웹 컨테이너에서 브라우저 세션 체크를 위해, URL에 ;jsessionid
를 포함해 리다이렉트 하기 때문에 발생 함
=> 이는 오류는 아니고, 브라우저에서 쿠키사용을 허용하는지 여부를 알 수 없기 때문에 최초 접속 시에 쿠키 + 위 URL에 ;jsessionid
를 포함해 보내는 세션트랙킹 방식을 사용해서 발생한다. 간단한 설정을 통해 해제할 수 있음
해결방법
세션 체크를 쿠키로만 하도록 세션 트랙킹 방식을 제한하여 해결할 수 있음.
1. spring boot일 경우
# aplication.yml 일 경우
sever:
servlet:
session:
tracking-mode: cookie #세션을 쿠키로만 추적
# aplication.properties 일 경우
sever.servlet.session.tracking-mode : cookie #세션을 쿠키로만 추적
2. spring일 경우
<!-- web.xml에 작성 -->
<session-config>
<tracking-mode>COOKIE</tracking-mode>
</session-config>
3. 위 방법 모두 사용했는데 해결이 안 될 경우
- 브라우저가 쿠키를 차단하고 있을 가능성이 있음 → 브라우저 쿠키 설정 확인 필요
- 서버 설정에서 tracking-mode를 쿠키로 설정했는지 확인 필요
마치며
엄청 간단한 문제인데도 처음 겪으니 원인을 찾는 거부터 시간이 꽤나 소요되었다.
같은 문제를 겪으시는 분이 있다면 얼른 원인을 찾아서 본인 상황에 맞는 해결방법을 적용하실 수 있길 바랍니다.
728x90
'Study > Spring boot' 카테고리의 다른 글
[Spring boot] 스프링 vs 스프링 부트 (0) | 2025.01.12 |
---|