개발/Web

Cookie, Session

Juyeon Ji 2020. 3. 4. 15:45

사용 이유: HTTP의 특징이자 약점을 보완하기 위함

쿠키

  • 클라이언트의 상태 정보를 로컬(쿠키 300개(도메인당 20개))에 저장한 후 참조함
  • 구성요소: 이름, 값, 유효시간, 도메인, 경로

세션

  • 쿠키를 기반으로하고 있음
  • 각 클라이언트에 고유 ID 부여
  • 쿠키는 브라우저에 저장하지만, 세션은 서버측에서 관리
  • 정보를 서버에 두기 때문에 보안성이 좋음, 사용자가 많아질수록 서버메모리를 차지(돕접자가 많을 경우 서버에 과부하, 성능 저하)
  • 로그인 같이 보안상 중요한 작업 수행 시 사용

차이점

  • 속도
    쿠키>세션
  • 보안성
    쿠키<세션
  • 만료 시간
    쿠키: 브라우저를 종료해도 쿠키삭제 전까지 유지 가능
    세션: 브라우저가 종료되면 만료시간에 상관없이 삭제됨

세션은 보안성이 좋으나, 사용자의 수만큼 서버 메모리를 차지하므로
이러한 문제점들을 보완한 "토큰 기반"의 인증방식(JWT:JSON Web Token 등)을 사용