분명 잔 것 같은데 졸리다

[JSP] 쿠키(Cookie) vs 세션(Session) 본문

FE/JSP

[JSP] 쿠키(Cookie) vs 세션(Session)

スモモ🍒 2024. 2. 26. 19:37

* 쿠키(Cookie) : 클라이언트의 상태 정보를 유지하기 위한 기술 (키, 값 형태로 웹 브라우저에 저장)

" 쿠키란, 클라이언트(브라우저)에 저장되는 작은 데이터 조각 "
 
* 쿠키 - 동작 방식
1. 클라이언트에서 서버에 요청시 서버에서 쿠키 생성
2. 생성한 쿠키를 클라이언트에 응답과 함께 전송
3. 클라이언트(브라우저)에 쿠키 저장 - text 형태로 저장
4. 재방문(해당 도메인에) 요청 시 클라이언트에서 쿠키와 함께 서버에 요청
5. 서버에서 쿠키를 읽어 작업 수행
 
 

* 쿠키 속성 :  name (이름), value (저장할 데이터), domain (적용할 도메인), path (적용할 경로), max age (유지기간)

* 용도 : 사용자의 로그인 상태, 개인설정 등 정보를 저장하여 웹사이트 재방문 시에도 정보 유지

* 쿠키는 생성자를 통해서만 생성 가능, 생성 후 쿠키값은 변경할 수 있으나 쿠키명은 변경 불가
* 쿠키는 생성 직후 사용 불가, 클라이언트로부터 재요청이 올 시 사용 가능
* 클라이언트에 저장되므로 보안에 취약하나 서버 자원을 사용하지 않으므로 세션보다 빠름

 


* 세션(Session) : 클라이언트가 서버에 접속해 있는 동안 상태 유지

(클라이언트가 웹 브라우저를 통해 서버에 접속 → 작업 처리 → 웹 브라우저를 닫으며 서버와의 접속을 종료하는 하나의 단위)
 
" 세션이란, 서버에 저장되는 정보! 쿠키를 통해 클라이언트와 연결되어 사용자의 상태 유지 "
 
* 세션 - 동작 방식
1. 세션은 서버측에서 생성됨
2. 고유한 세션식별자(session ID)를 클라이언트에게 부여
3. 식별자를 통해 서버는 세션에 관련된 정보를 저장하고 관리 - Object 타입으로 저장
4. 클라이언트는 세션ID를 쿠키를 통해 저장
5. 서버에 요청 시 세션 ID를 함께 전송하여 자신을 식별
 

* 용도 : 주로 로그인 정보와 같은 민감한 데이터를 안전하게 관리, 쿠키와 함께 사용하여 사용자 식별하고 정보저장

* 세션은 웹 브라우저를 실행할 때마다 새롭게 생성됨, 생성된 세션은 설정된 유지 시간동안 유지 이후 삭제됨
(만료되기 전 새로운 요청이 들어오면 계속 연장되나 요청이 없거나 웹 브라우저를 닫으면 삭제)
* 서버에 저장되므로 보안에 안전하나 서버 자원을 사용하여 쿠키보다 느린 단점

JESSIONID : 톰캣 컨테이너에서 세션을 유지하기위해 발급하는 키 (웹 브라우저를 열면 자동 생성)