쿠키(Cookie)
정의
- 웹 서버가 클라이언트(브라우저)에 보내는 작은 크기의 데이터 조각
- 클라이언트는 이 쿠키를 저장한 뒤, 이후 서버에 요청을 보낼 때 함께 전송
특징
- 클라이언트 측에 저장
- 서버는 쿠키 값을 읽어 클라이언트를 식별
- 상태 유지를 위한 간단한 방법
- 보안에 취약(자바스크립트로 조작 가능)
사용 예시
- 사용자의 로그인 상태 유지, 사이트 설정 기억 등
세션(Session)
정의
- 서버 측에 저장되는 임시 데이터 영역
- 클라이언트가 처음 서버에 접속시, 고유 세션ID 생성
- 쿠키를 통해 클라이언트에 고유 세션 ID 전달
- 이후 클라이언트가 요청시마다, 세션 ID를 함께 전송,
서버에서 해당 세션에 저장된 정보 참조
특징
- 서버 측에 저장
- 더 안전한 상태 유지
- 세션 만료 시간 설정 가능
- 서버 부하 증가 가능성
사용 예시
- 쇼핑몰 장바구니, 사용자 설정 저장 등
토큰(Token)
정의
- 서버가 생성하여 클라이언트에 제공하는 일종의 증명서
- 일반적으로 JSON Web Token (JWT) 형식을 사용
- 클라이언트는 이 토큰을 헤더에 포함하여 서버에 요청 전송
특징
- 서버와 클라이언트 모두 상태 비저장 방식
- 보안성이 높음 (암호화 가능)
- 확장성이 좋음
- 토큰 유효성 검증 필요
사용 예시
- API 인증, Single Sign-On(SSO) 등
쿠키, 세션, 토큰의 차이점
특징
|
쿠키
|
세션
|
토큰
|
저장 위치
|
클라이언트
|
서버
|
클라이언트
|
보안
|
낮음
|
중간
|
높음
|
상태 유지
|
간단
|
복잡
|
간단
|
확장성
|
낮음
|
중간
|
높음
|
사용 예시
|
로그인 상태 유지, 사이트 설정 기억
|
쇼핑몰 장바구니, 사용자 설정 저장
|
API 인증, SSO
|
'CS' 카테고리의 다른 글
[SQL] 쿼리 속도 향상시키는 법 (1) | 2024.10.03 |
---|---|
HTTP vs AJAX vs WebSocket (0) | 2024.09.25 |
이더넷 vs 인터넷 (0) | 2024.09.21 |