Files
html-examples/doc/http/06_cookie_session.md
2025-02-09 19:02:05 +09:00

47 lines
2.5 KiB
Markdown

# 쿠키와 세션
웹 서핑을 하다 보면 자주 접하게 되는 용어인 쿠키와 세션은 웹 애플리케이션에서 사용자 상태를 관리하는 데 필수적인 요소입니다. 둘 다 사용자 정보를 저장하고, 이를 바탕으로 맞춤형 서비스를 제공하는 데 사용되지만, 저장 위치와 용도에 따라 차이점이 있습니다.
## 쿠키 (Cookie)
웹 서버가 클라이언트(웹 브라우저)에 보내는 작은 크기의 데이터 파일입니다. 클라이언트는 이 파일을 로컬 디스크에 저장하고, 이후 같은 서버에 요청을 보낼 때마다 함께 전송합니다.
### 특징
* 저장 위치: 클라이언트 측 (브라우저)
* 용도
- 사용자 식별 (로그인 상태 유지)
- 사용자 설정 저장 (테마, 언어 설정)
- 사이트 방문 기록 추적
- 장바구니 정보 저장
* 종류
- 세션 쿠키: 브라우저를 닫으면 자동으로 삭제됩니다.
- 영구 쿠키: 만료 날짜가 설정되어 해당 날짜까지 유효합니다.
### 장점
* 서버 부담 감소: 서버에 사용자 정보를 저장하지 않아 서버 자원을 절약할 수 있습니다.
### 단점
* 보안 취약성: 클라이언트 측에 저장되므로, 해킹이나 악성 코드에 노출될 위험이 있습니다.
* 용량 제한: 저장할 수 있는 데이터의 크기가 제한적입니다.
* 사용자의 프라이버시 침해 가능성: 사용자의 행동을 추적하는 데 악용될 수 있습니다.
## 세션 (Session)
사용자와 서버 간의 연결 상태를 유지하기 위한 일련의 상호 작용을 의미합니다.
### 특징
* 저장 위치: 서버 측
* 용도
- 사용자 세션 관리 (로그인 상태 유지, 장바구니 정보 관리)
- 사용자 활동 기록
* 작동 방식
- 서버는 각 사용자에게 고유한 세션 ID를 부여하고, 이를 쿠키를 통해 클라이언트에 전달합니다.
- 클라이언트는 이후 요청 시 세션 ID를 함께 보내고, 서버는 해당 ID를 통해 사용자 정보를 조회합니다.
### 장점
* 보안성 향상: 서버 측에 저장되므로 쿠키보다 보안성이 높습니다.
* 대용량 데이터 저장 가능: 쿠키보다 더 많은 양의 데이터를 저장할 수 있습니다.
### 단점
* 서버 부담 증가: 서버에 사용자 정보를 저장해야 하므로 서버 자원을 소모합니다.
* 세션 만료 문제: 세션 유효 시간이 지나면 사용자 정보가 사라질 수 있습니다.