본문 바로가기

CS

쿠키 세션 토큰

쿠키 (Cookie)

크롬이나 사파리같은 브라우저에 저장되는 작은 텍스트 조각
즉, 사용자가 가지고 있는 정보

  • 사용자는 쿠키를 확인하고 수정, 삭제 가능
  • 제 3자가 조회하는 것도 가능
  • 남에게 탈취되거나 사용자에 의해 조작되어도 문제되지 않을 정보만 저장
    • ex)
    • 자주보는 웹툰 목록, 웹 페이지 다크모드 설정 여부
    • 로그인 시 “아이디와 비밀번호를 저장하시겠습니까?
    • 쇼핑몰 장바구니
    • 자동로그인
    • 팝업에서 “오늘 더 이상 이 창을 보지 않음" 체크
  • Key:Value의 형태
  • 유효시간 명시 가능
    • 유효시간이 남아 있다면 브라우저 종료 시에도 남아 있음

구성 요소

  • 이름 : 각각의 쿠키를 구별하는 데 사용되는 이름
  • 값 : 쿠키의 이름과 관련된 값
  • 유효시간 : 쿠키의 유지시간
  • 도메인 : 쿠키를 전송할 도메인
  • 경로 : 쿠키를 전송할 요청 경로

 

세션 (Session)

쿠키를 기반으로 하고 있지만, 서버 (세션 스토리지)에 정보를 저장, 관리

 

  • 클라이언트를 구분하기 위해 유니크한 세션ID를 부여
  • 브라우저를 종료할 때 까지 인증상태 유지

  • 쿠키를 포함한 요청이 외부에 노출되더라도 세션 ID 자체는 유의미한 개인정보를 담고 있지 않다
    • 그러나 해커가 이를 중간에 탈취해 클라이언트인척 위장할 수 있다는 한계가 존재
  • 각 사용자마다 고유한 세션ID가 발급되기 때문에, 요청이 들어올 때마다 회원정보를 확인할 필요 X
  • 서버에서 세션 저장소를 사용하므로 요청이 많아지면 서버에 부하가 심해진다
    • 즉, 동접자 수가 많은 웹사이트인 경우 서버에 과부하를 주게 되므로 성능 저하의 요인

 

쿠키 세션 차이

 

 

토큰 (Token)

인증을 위해 사용하는 암호화된 문자열
  • 세션 인증에서는 서버가 세션 ID를 저장하고 클라이언트가 쿠키에 실어 보낸 세션 ID와 대조해서 확인하는 반면, 토큰을 사용하면 요청을 받은 서버는 토큰이 유효한지만 확인
  • HTTP 통신의 Stateless 한 성격과 더 적합한 인증 방식

 

'CS' 카테고리의 다른 글

OSIV  (0) 2023.08.17
캐시  (0) 2023.08.16
JWT  (0) 2023.08.10
URI URL URN  (0) 2023.08.03
PATCH와 PUT  (0) 2023.08.03