[1주차 TIL] KnockOn Bootcamp 쿠키와 세션
2024. 12. 6. 05:46ㆍKnockOn Bootcamp (녹온 부트캠프 3기)
1. 쿠키와 세션
- 쿠키 (Cookie):
- 클라이언트(브라우저)에 저장되는 작은 데이터 조각.
- 주로 사용자 인증 상태 유지, 사용자 설정 저장에 사용.
- 특징:
- 키-값 쌍으로 저장.
- 만료 시간 설정 가능.
- 서버와 클라이언트가 모두 접근 가능.
- 단점:
- 보안 취약점(탈취 가능성).
- 브라우저 스토리지 공간 제한 (4KB).
- 세션 (Session):
- 서버에 저장되는 사용자 상태 정보.
- 클라이언트는 세션 ID를 쿠키 또는 URL에 저장.
- 특징:
- 서버에서 관리하므로 보안성이 높음.
- 사용자 접속 종료 시 데이터 삭제 가능.
- 단점:
- 서버 부하 증가.
2. 쿠키와 세션의 발전 과정
- 초기 단계:
- 쿠키로만 사용자 상태 유지.
- 브라우저에 모든 정보 저장, 보안 및 성능 이슈 발생.
- 세션 도입:
- 서버에서 상태 정보 관리, 보안 개선.
- 사용자 데이터의 분리된 저장 가능.
- 현대 기술:
- JWT (JSON Web Token): 상태 정보를 클라이언트에서 관리하면서도 보안성을 높임.
3. JWT (JSON Web Token)
- 개념:
- JSON 형식으로 정보를 저장하고 서명하여 인증 및 정보 교환에 사용.
- 클라이언트-서버 간 상태를 유지하면서 서버 부하를 줄이는 데 효과적.
- 구조:
- Header: 알고리즘과 타입 정보.
- Payload: 데이터(예: 사용자 ID, 권한).
- Signature: 서명, 데이터 위변조 방지.
- 장점:
- 무상태(stateless) 인증.
- 서버 확장성 증가.
- 단점:
- 토큰 크기가 크고, 만료 전까지 재사용 가능(보안 위협).
4. 브라우저 저장소
- 로컬스토리지 (LocalStorage):
- 클라이언트에 영구적으로 데이터 저장.
- 용량: 약 5~10MB.
- 특징:
- 만료 시간 없음.
- 도메인 기반 접근 제한.
- 세션스토리지 (SessionStorage):
- 세션이 유지되는 동안 데이터 저장.
- 용량: 약 5~10MB.
- 특징:
- 브라우저 탭을 닫으면 데이터 삭제.
- 쿠키:
- 서버와 클라이언트 모두 접근 가능.
- 용량: 약 4KB.
- IndexedDB:
- 클라이언트에 대용량 데이터 저장 가능.
- 특징:
- 비관계형 데이터베이스.
- 트랜잭션 처리 지원.
'KnockOn Bootcamp (녹온 부트캠프 3기)' 카테고리의 다른 글
[1주차 TIL] KnockOn Bootcamp 프록시 (0) | 2024.12.06 |
---|---|
[1주차 TIL] KnockOn Bootcamp 패킷 (0) | 2024.12.06 |
[1주차 TIL] KnockOn Bootcamp HTTP/HTTPS (0) | 2024.12.06 |
[1주차 TIL] KnockOn Bootcamp 프로토콜 (0) | 2024.12.03 |
[1주차 TIL] KnockOn Bootcamp 웹, 서버, 클라이언트 (0) | 2024.12.02 |