쿠키, 세션, 토큰

ILCHAN AHN·2023년 2월 25일
0

쿠키, 세션 및 토큰은 모두 웹 사이트 및 웹 응용 프로그램에서 사용자 인증을 유지하고 사용자 활동을 추적하기 위해 일반적으로 사용되는 방법입니다.

쿠키

쿠키는 웹 사이트가 사용자의 브라우저로 보내고 사용자의 장치에 저장되는 작은 텍스트 파일입니다. 쿠키를 사용하여 사용자 기본 설정, 로그인 자격 증명 및 기타 사용자별 데이터를 저장할 수 있습니다. 사용자가 웹 사이트를 다시 방문할 때 브라우저는 쿠키를 서버로 다시 전송하여 서버가 사용자의 이전 활동을 기억할 수 있도록 합니다. 쿠키는 세션 쿠키 또는 영구 쿠키일 수 있습니다. 세션 쿠키는 사용자가 브라우저를 닫을 때 삭제되는 반면 영구 쿠키는 만료되거나 사용자가 수동으로 삭제할 때까지 사용자의 장치에 저장됩니다.

세션

세션은 요청 간에 사용자 데이터를 저장하는 서버 측 저장 메커니즘입니다. 사용자가 웹 사이트에 로그인하면 서버는 해당 사용자에 대한 고유한 세션 ID를 작성하여 서버에 저장합니다. 세션 ID는 일반적으로 사용자의 장치에 있는 쿠키에 저장되며, 이를 통해 서버는 후속 요청을 올바른 세션과 연결할 수 있습니다. 세션은 사용자 기본 설정, 로그인 자격 증명 및 기타 사용자별 데이터를 포함한 모든 유형의 데이터를 저장할 수 있습니다.

토큰

토큰은 서버에서 생성되어 인증 수단으로 클라이언트에 전송되는 데이터입니다. 토큰은 JWT(JSON 웹 토큰) 또는 OAuth 토큰일 수 있습니다. JWT는 사용자 데이터를 포함하는 자체 포함 토큰이며 무결성을 보장하기 위해 디지털 서명됩니다. OAuth 토큰은 서버의 특정 리소스에 대한 액세스 권한을 부여하는 데 사용되며 일반적으로 API 인증에 사용됩니다.

요약하면 쿠키는 클라이언트 측의 사용자별 데이터를 저장하는 데 사용되고 세션은 서버 측의 사용자 데이터를 저장하는 데 사용되며 토큰은 인증 및 권한 부여에 사용됩니다.

사용적합한 상황

쿠키

사용자 기본 설정 또는 설정 저장
분석 목적으로 사용자 활동 추적
향후 방문을 위해 사용자 로그인 자격 증명 기억
쇼핑 카트 또는 기타 전자 상거래 기능 구현

세션

클라이언트 측에 저장해서는 안 되는 중요한 사용자 데이터 저장
사용자 인증 및 권한 부여 구현
웹 사이트의 여러 페이지에 걸쳐 사용자 상태 관리
사용자별 데이터를 기반으로 사용자 환경 사용자 정의

토큰

API 인증 및 권한 부여를 구현
타사 응용프로그램이 사용자 데이터에 액세스 허용
사용자가 응용프로그램별로 데이터에 대한 액세스 권한을 부여하거나 취소가능
여러 애플리케이션 또는 서비스에 걸쳐 SSO(Single Sign-On) 구현

즉, 각 기술에는 고유한 장단점이 있으며, 어떤 기술을 사용할지는 보안 요구사항, 확장성 및 구현 용이성과 같은 요소에 따라 달라질 수 있습니다. 어떤 경우에는 원하는 기능성을 달성하기 위해 이러한 기술의 조합을 사용하는 것이 적절할 수도 있다.

profile
백엔드 개발자를 꿈꿉니다

0개의 댓글