[study] 쿠키, 세션, 토큰

냐옹·2023년 11월 19일
0

스터디

목록 보기
10/14

쿠키, 세션, 토큰

이 셋은 사용자 인증과 정보 저장을 위해서 사용되는 기술들이다. 한번 알아보자

쿠키

쿠키는 무엇인가

  • 쿠키는 서버가 사용자 브라우저에 저장하는 작은 데이터 조각이다.
  • 사용자가 웹 사이트를 방문할 때마다 브라우저는 이 쿠키를 서버에 함께 전송한다.

왜 쓰는가

  • 사용자 세션관리
    - 로그인, 쇼핑카트
  • 개인화
    - 사용자 설정(ex.언어), 테마
  • 트래킹
    - 사용자 행동 분석을 통한 맞춤 제공

제한 사항

  • 쿠키는 특정 도메인에 제한되고, 설정된 유효 기간동안만 유지된다.
  • 쿠키의 크기는 제한적이며, 많은 양의 데이터를 저장하기에는 적합하지 않다.

세션 그리고 토큰

HTTP프로토콜은 stateless하다

  • HTTP 프로토콜은 stateless 하므로, 서버는 사용자의 이전 요청을 기억하지 못한다.
  • 그렇기 때문에, 각 요청은 독립적으로 처리된다.

세션의 역할

  • 세션은 서버가 사용자의 상태 (예를 들어, 로그인상태)를 유지하기 위해서 사용한다.
  • 사용자가 로그인하면, 서버는 고유한 세션 id를 생성하고 이것을 쿠키에 저장하여 브라우저에 전달한다.

쿠키와 세션의 관계

  • 사용자가 이후 요청을 보낼때마다, 브라우저는 이 세션 id가 담긴 쿠키를 함께 전송한다.
  • 서버는 쿠키에서 세션 id를 읽고, 해당 사용자의 상태를 파악하여 적절한 응답을 한다.

토큰 사용 이유

  • 모든 요청마다 데이터 베이스를 조회하여 세션을 확인하는 것은 비효율적일 수 있다.
  • 이것을 해결하기 위해서 토큰이라는 기술이 사용된다.
  • 토큰은 서버에서 생성한 암호화된 문자열로, 사용자의 인증정보를 담고 있다.

토큰 기반 인증

  • 사용자가 로그인하면 서버는 토큰을 생성하여 사용자에게 전달한다.
  • 이후 사용자는 요청마다 이 토큰을 서버에 전송하여 자신을 인증한다.
  • 토큰은 클라이언트 측에 저장되며, 서버는 토큰을 검증하여 사용자를 식별한다.

요약

쿠키

  • 브라우저에 저장되는 작은 데이터 조각
  • 사용자의 상태를 서버에 전달하는 역할

세션

  • 서버 측에서 사용자의 상태를 유지하는 방법
  • 쿠키에 세션 id를 저장하여 사용

토큰

  • 사용자 인증 정보를 암호화된 문자열로 담은 것
  • 토큰을 통해서 요청마다 사용자를 인증한다.

0개의 댓글