Spring

jsessionid

딸기케잌🍓 2023. 6. 7. 15:36

JSESSIONID

  • 톰캣 컨테이너에서 세션을 유지하기 위해 발급하는 키 즉, 세션에서 사용되는 쿠키 이름이다.
  • HTTP는 stateless하기 떄문에, 새로운 연결이 생성되면 이전 연결은 끊기기 때문에 상태를 유지할 수 없다.
  • 상태를 저장하기 위해 톰캣은 JSESSIONID 쿠키를 클라이언트에게 발급해주고 이 값으로 세션을 유지할 수 있도록 한다.

 

JSESSIONID 동작방식

  1. 브라우저 최초 접근 -> Tomcat은 Response 헤더에 JSESSIONID 값 발급
    Set-Cookie: JSESSIONID=3CB361E0BE1A9A7DE7DB926DF0772BAE
  2. 브라우저 재 요청 시 Response를 통해 받은 JSESSIONID를 Request 헤더의 쿠키에 값을 넣어 서버에 요청.
    쿠키를 통해 JSESSIONID를 전달 받으면 서버는 새 JSESSIONID를 발급하지 않는다.
  3. 서버는 클라이언트에게서 전달받은 JSESSIONID를 기준으로 세션 메모리 영역에 상태를 유지할 값들(HttpSession 등)을 저장

 

JSESSIONID 유지범위

동일한 full 도메인(서브도메인이 다를 경우 쿠키가 유지되지 않음)

포트 번호 무관

 

 

JSESSIONID 한계

톰캣 컨테이너를 2대 이상 사용할 경우 세션 유지 불가 -> 세션 클러스터링 환경 구축 필요

 

 

'Spring' 카테고리의 다른 글

open feign  (0) 2023.07.04
프레임워크 vs 라이브러리  (0) 2021.05.29
스프링 VS 스프링부트  (0) 2020.11.18