안녕하세요. Narvis2 입니다.
이번 포스팅에서는 쿠키(Cookie)와 세션(Session)에 대하여 알아보고자 합니다.
🍀 사용 이유
Cookie와Session은 주로 자주 사용되는 데이터를 꺼내사용해야 하는 경우 사용됨HTTP의 특징으로 인해 사용 👇Connectionless(비 연결지향)👉HTTP는 기본적으로요청&응답만 하고 끊어버림Stateless(상태정보유지안함)👉HTTP는 상태정보를 저장하지 않음, 따라서Session혹은Cookie로 데이터를 저장함
🍀 Cookie (쿠키)
- 브라우저에 휘발성 데이터 를 저장하는 방식
- 유저들의 효율적이고 안전한 웹 사용을 보장하기 위하여 사용
- 웹 사이트 접속시 접속자의 개인 장치에 다운로드되고, 브라우저에 저장되는 작은
Text파일 - 웹 사이트는 쿠키를 통해 접속자의 장치를 인식하고, 접속자의 설정과 과거 이용내역에 대한 일부 데이터를 저장
참고 👉 특정 사이트에 가면, 자동적으로 아이디와 비밀번호가 입력 되는 경우
- 이름, 값,
만료날짜, 경로 정보가 들어있음참고 👉
일정 시간동안데이터를 저장할 수 있어서 로그인 상태를 유지 하거나, 사용자 정보를 일정 시간 동안 유지해야 하는 경우 에 주로 사용 Cookie가 생성되면 브라우저는Request Header에 자동적으로Cookie정보를 넣어서 보내게 됨참고 👉 매 요청마다
Cookie를 담아서 보냄- ✅ 사용 경우
- 1️⃣
Session관리 👉 서버에 저장해야 할 로그인, 장바구니, 게임 스코어 등의 정보 관리 - 2️⃣
개인화👉 사용자 선호 테마 등의 세팅 - 3️⃣
트래킹👉 사용자의 행동을 기록하고 분석하는 용도
- 1️⃣
- ❗️ 단점 ❗️
- 사용자 정보가 누출될 수 있음. (보안성 낮음)
☘️ Cookie 의 Flow (흐름)

- 1️⃣ 웹 브라우저(
Client)에서서버로 요청(request) - 2️⃣
서버에서 상태를 유지하고 싶은 값을Cookie로 생성 - 3️⃣
서버가 응답(response)할 때HTTPHeader에Cookie를 포함해서Client에게 전송 - 4️⃣
Cookie는Client에 파일 단위로 저장 - 5️⃣ 이후
Client에서 이Cookie를 포함하여 요청(request)
🍀 Session (세션)
- 서버 메모리에 저장되는 정보
참고 👉 서버에 저장되기 때문에
Cookie와는 달리 사용자 정보가 노출되지 않음 - 수명 👉
Client가 웹 서버에 연결된 순간부터 웹 브라우저를 닫아 서버와의HTTP끝날 때 까지의 기간 - 서버에
Session에 대한 정보(Session 상태, Client 상태, Session 데이터 등)를 저장해 놓고SessionCookie(고유한 Session ID 값)를Client에게 주어 서버가Client를 식별할 수 있도록 하는 방식 자체를 의미 - ✅ 특징
- 1️⃣ 따로 용량의 제한이 없음(서버의 능력에 따라 다를 수 있음)
- 2️⃣ 서버에
Session객체를 생성하며, 각Client마다 고유한SessionID값을 부여함. - 3️⃣
Cookie를 사용하여Session ID값을Client에 보냄 - 4️⃣ 웹 브라우저가 종료되면
Session,Cookie는 삭제됨
☘️ Session 의 Flow (흐름)

- 1️⃣ 웹 브라우저(
Client)에서서버로 요청(request) - 2️⃣
서버내부에서 해당Client에게Session ID를 부여 - 3️⃣
서버가 응답(response)할 때HTTPHeader에Session ID를 포함해서Client에게 전송 - 4️⃣ 웹 브라우저(
Client)는 이후 웹 브라우저(Client)를 닫기까지 부여된Session ID를 기억함 - 5️⃣ 이후
Client에서 이Session ID를 포함하여 요청(request) - 6️⃣ 브라우저를 종료하면
Session ID를 삭제
🍀 Cookie 와 Session 의 차이
| Cookie | Session | |
|---|---|---|
| 저장 위치 | 브라우저(Local) | 서버 |
| 보안성 | 낮음 | 높음 |
| 수명 | 반영구 | 브라우저 종료시 삭제 |
| 속도 | 빠름 | 느림 |