- jsessionid란
톰캣 컨테이너에서 세션을 유지하기 위해 발급하는 키이다.
http 프로토콜은 stateless하다. 요청할때마다 새로운 연결이 생성되고 응답후 연결은 끊기게 되므로 상태를 유지할 수 없다.
따라서, 상태를 저장하기 위해서 톰캣은 jsessionid 쿠키(jsessionid의 세션유지 방법으로 내부적으로 쿠키를 사용한다!!)를 클라이언트에게 발급해주고 이 값을 통해 세션을 유지할 수 있도록 한다.
각 클라이언트에 해당하는 세션객체는 서버에서 유지되고 있지만 클라이언트에서 요청이 올 때
이전에 접근했던 사용자인지 처음 접근하는 사용자인지 구별하기 위해서 jsessionid를 사용한다.
- 동작방식
1. 브라우저에 최초 접근시 톰캣은 Response 헤더에 다음과 같이 JSESSIONID값이 발급된다.
Set-Cookie: JSESSIONID=3CB361E0BE1A9A7DE7DB926DF0772BAE
2. 브라우저 재요청시 Response를 통해 받은 JSESSIONID를 Request 헤더의 쿠키에 값을 넣어 서버에 요청한다. 쿠키를 통해 JSESSIONID값을 전달받게 되면 서버는 새로운 JSESSIONID 값을 Response 헤더에 발급하지 않는다.
3. 클라이언트로부터 전달받은 JSESSIONID값을 기준으로 서버에서는 세션 메모리 영역에 상태를 유지할 값들을 저장할 수 있게 된다. (HttpSession 등)
출처 : https://pshcode.tistory.com/114
- 세션이 아니라 쿠키를 다시 사용하게 된 이유?
쿠키는 주로 자동 로그인에 사용된다. 모바일에서 매번 아이디, 패스워드를 작성해서 로그인하는게 불편해 로그인 정보를 오랜 시간 유지하기 위해 쿠키를 다시 사용하기 시작했다.
'컴퓨터공학' 카테고리의 다른 글
카카오 로그인 연동시 CORS 개념 정리 (0) | 2021.11.22 |
---|---|
JWT(Json Web Token)란? (0) | 2021.06.09 |
HTTP GET, POST 방식에 대해 (0) | 2020.12.07 |
Async/sync, Blocking/Non-Blocking (0) | 2020.08.14 |