쿠키 VS 세션

hsnam·2022년 2월 4일
0

web

목록 보기
1/4
post-thumbnail

쿠키(Cookie)

쿠키란?

  • 쿠키는 클라이언트(브라우저) 로컬에 저장되는 Key-Value로 이루어져 있는 데이터 파일 이다.
  • 쿠키는 사용자 인증이 유효한 시간을 명시 할 수 있으며, 유효 시간이 정해지면 브라우저가 종료되어도 인증이 유지된다는 특징이 있다.

쿠키의 구성요소

  • 쿠키이름
  • 쿠키 값
  • 만료시간
  • 전송할 도메인명
  • 전송할 경로
  • 보안연결여부
  • HttpOnly 여부

쿠키의 사용 목적

  • 세션관리(Session Management)
    - 로그인, 사용자 넥네임, 접속시간, 장바구니 등 정보를 관리한다.
  • 개인화(Personalization)
    - 사용자 마다 테마의 환경 설정등 정보들을 관리한다.
  • 트래킹(Tracking)
    - 사용자의 행동을 기록하고 분석하고 기록한다.

쿠키의 원리

  • 클라이언트(브라우저)가 서버에 접속하면 서버는 요청해더에(set-cookie: key=value)를 추가하여 응답답한다.
  • 클라이언트(브라우저)는 서버 요청 이후 요청헤더에 추가하여 요청하여 서버와 통신 한다.

쿠키의 장점

  • 서버의 저장 공간을 절약 할 수 있다.

쿠키의 단점

  • 쿠키에 대한 정보를 HTTP 요청할 때마다 헤더에 추가하여 보내야 하기 때문에 트래픽을 발생 시킬수도 있다.
  • 개인정보에 민감한 정보들을 쿠키에 저장하여 사용하였을 경우 유출에 대한 보안문제가 발생 할 수 있다.

세션(Session)

세션이란?

  • 세션은 클라이언트(브라우저)와 웹 서버 간 네트워크 연결이 지속 유지되고 있는 상태를 뜻하며 클라이언트(브라우저)요청에 따른 정보를 클라이언트(브라우저)에 저장하는 것이 아니라 서버에 저장하여 사용자에게 정보가 노출되지 않는다.

세션 사용 목적

  • 로그인 정보 관리

세션의 원리

  • 클라이언트가 서버에 접속하면 서버는 세션ID를 발급한다.
  • 서버는 클라이언트에 응답할때 발급한 세션ID를 쿠키(set-cookie: sessionId)에 저장하여 응답한다.
  • 이후 클라이언트는 서버에 요청할때 마다 쿠키에 저장된 세션ID를 해더에 추가하여 요청하고
  • 서버는 해더의 세션ID를 저정된 세션저장소에 찾아 유효한지 확인 후 요청을 처리 한다.

세션의 장점

  • 각 클라이언트가 서버에 접속하면 세션ID(고유ID)를 부여 한다.
  • 세션ID로 각 클라이언트 마다 권한에 따른 서비스를 제공 할 수 있다.
  • 각 클라이언트 정보가 서버에 저장되기 때문에 쿠키보다 보안에는 안전 하다.

세션의 단점

  • 각 클라이언트 정보가 서버에 저장되기 때문에 서버에 처리되는 부하와 저장 공간을 필요로 할 수 있다.

정리

CookieSession
저장위치클라이언트서버
용량제한1개의 쿠키당 4KB, 도메인당 20개제한사항 없음
만료시점쿠키 저장시 설정(설정 없을 시에는 브라우저 종료시 만료)로그아웃 시점 및 브라우저 종료시
보안탈취와 변조가 가능서버에 저장되어 있어 상대적으로 안전

0개의 댓글