Django에서 Cookie와 Session 방식과, Token 방식의 차이점을 정리해 보았다..
Cookie | Session | Token | |
저장 위치 | client 측에 저장, 사용자의 브라우저에 정보 저장 | 서버 측에 저장, 서버에 저장된 데이터는 일반적으로 메모리나 데이터베이스에 보관 | client 측에 저장, 주로 웹 클라이언트의 로컬 스토리지나 쿠키, 모바일 앱의 메모리에 저장 |
데이터 유지 기간 | 만료 날짜/시간을 설정할 수 있고, 만료 기간이 지나면 삭제 | 세션 데이터는 일반적으로 사용자가 브라우저를 닫을 때까지 유지 | 보통 설정된 만료 시간까지 유효, 만료 시간이 지나면 더 이상 사용할 수 없음 |
보안 | 브라우저에 저장되어 보안에 취약할 수 있음, 민감한 정보를 저장하기에는 적합하지 않을 수 있음 | 서버에 저장되므로 브라우저에서 직접 접근할 수 없고, 일반적으로 보다 안전 | client 측에 저장, 안전하게 보호되어야 함. HTTPS와 함께 사용할 때 보안성이 향상됨. |
서버 부하 | 세션 데이터를 서버에 저장하므로, 사용자 수가 많아지면 서버 부하가 증가할 수 있음 | 서버에 저장된 데이터가 없으므로 부하가 낮음 | |
확장성 | 서버 확장성을 제한할 수 있음 | 서버를 확장하기 쉬움, 서버 간 통신 없이도 토큰을 검증할 수 있음 | |
용도 | 주로 웹 애플리케이션의 사용자 인증과 상태 유지에 사용됨 | 주로 웹API 및 분산 시스템에서 인증 및 권한 부여에 사용됨 |
어떤 방식으로 인증을 할 것인가는 프로젝트의 요구 사항과 보안 고려사항에 따라 달라진다. 주로 웹 애플리케이션에서는 Cookie 및 Session 방식이 사용되고, 웹 API를 개발할 때는 Token 방식이 더 적합할 수 있다.
LIST
'Computer Programming > AI' 카테고리의 다른 글
WIL_아홉 번째 주 (0) | 2023.10.08 |
---|---|
TIL_Django REST Framework(DRF)의 serializers 사용 방법 (0) | 2023.10.07 |
TIL_JWT(JSON Web Token) (0) | 2023.10.04 |
TIL_HTTP, HTTPS, SSH란? (0) | 2023.10.02 |
TIL_DRF에서 Meta class란? (0) | 2023.09.27 |