세션 기반 인증과 토큰 기반 인증은 웹 애플리케이션 및 웹 서비스에서 사용되는 두 가지 다른 인증 방법입니다. 이 두 방법 사이에는 몇 가지 중요한 차이가 있습니다.
- 상태 (Statefulness) vs. 무상태 (Statelessness):
- 세션 기반 인증은 상태를 유지합니다. 서버는 클라이언트에게 세션 ID를 할당하고 이 세션 ID를 사용하여 클라이언트의 상태를 추적합니다. 클라이언트의 인증 상태는 서버 측에 저장되어 있으며 클라이언트가 로그인하면 세션에 대한 정보가 서버에 저장됩니다.
- 토큰 기반 인증은 무상태입니다. 클라이언트는 인증된 요청을 할 때마다 인증 토큰을 서버에 제공합니다. 서버는 이 토큰을 사용하여 클라이언트의 인증 상태를 확인하며 토큰에는 클라이언트의 인증 정보와 권한이 포함되어 있습니다.
- 서버 부하:
- 세션 기반 인증은 서버에 상태를 저장해야 하므로 많은 클라이언트가 로그인하면 서버 부하가 증가할 수 있습니다.
- 토큰 기반 인증은 서버에 상태를 저장하지 않으므로 서버 부하가 감소합니다. 각 요청이 독립적이며 모든 필요한 정보가 토큰에 포함되어 있기 때문입니다.
- 확장성:
- 토큰 기반 인증은 클라이언트와 서버 간의 상태를 유지하지 않으므로 여러 서버 간에 사용하기가 더 쉽습니다. 로드 밸런싱된 서버 아키텍처 또는 분산 시스템에서 확장성을 제공하기에 좋습니다.
- 세션 기반 인증은 상태를 서버에 저장하므로 여러 서버 간에 세션 정보를 공유하기가 어려울 수 있습니다.
- 보안:
- 토큰 기반 인증은 토큰을 안전하게 관리하고 검증해야 하므로 보안에 더 많은 주의가 필요합니다. 토큰을 안전하게 저장하고 전송하는 것이 중요합니다.
- 세션 기반 인증은 서버 측에서 상태를 관리하기 때문에 상대적으로 더 안전한 것으로 간주될 수 있지만 세션 하이재킹 공격 등에 취약할 수 있습니다.
각 방법은 특정 상황 및 요구 사항에 따라 적합한 선택일 수 있으며, 보안, 성능 및 확장성 요소를 고려하여 선택해야 합니다.
'TIL(Today I Learned)' 카테고리의 다른 글
TLI 83일 (23. 9. 6. 수) 최종프, CI/CD, 코드 정리 (0) | 2023.09.06 |
---|---|
TLI 82일 (23. 9. 5. 화) 최종프, 템플릿 조각 기능, 상단바 (0) | 2023.09.05 |
TLI 80일 (23. 9. 1. 금) 최종프 로그인, 프론트, 백 연결 (0) | 2023.09.01 |
TLI 79일 (23. 8. 31. 목) 최종프, 이메일 인증 기능 구현 (0) | 2023.09.01 |
TLI 78일 (23. 8. 30. 수) 최종프 로그인, 회원가입 프론트 적용 (0) | 2023.08.30 |
댓글