Cookie & Session이란?

쿠키(Cookie)

  • 개념
    클라이언트 PC에 Key-Value 형태로 사용자에 대한 정보가 저장되는 작은 데이터 파일이다.

  • 구성요소
    • 이름: 각각의 쿠키를 구별하는 데 사용되는 이름
    • 값: 쿠키의 이름과 관련된 값
    • 유효시간: 쿠키의 유지되는 시간
    • 도메인: 쿠키를 전송할 도메인
    • 경로: 쿠키를 전송할 요청 경로
  • 특징
    • 클라이언트에 총 300개의 쿠키를 저장할 수 있다.
    • 하나의 도메인 당 20개 쿠키를 가질 수 있다.
    • 하나의 쿠키는 4KB(=4096byte)까지 저장이 가능하다.
  • 동작 순서
    1. 클라이언트가 페이지를 요청한다.
    2. 서버에서 쿠키를 생성한다.
    3. 생성한 쿠키에 정보를 담아 클라이언트에게 전달한다(Response Header에 Set-Cookie)
    4. 전달받은 쿠키는 클라이언트 PC에 저장된다.
    5. 만들어진 쿠키는 클라이언트가 요청하지 않아도 Request Header에 넣어서 서버에 전송한다.
  • 사용 예시
    • 아이디 저장
    • 로그인 상태 유지
    • 쇼핑몰의 장바구니 기능
    • 오늘 하루 보지 않기

세션(Session)

  • 개념
    세션은 쿠키를 기반하고 있지만, 클라이언트 정보를 브라우저에 저장하는 쿠키와 다르게 서버 메모리에 저장된다.
    클라이언트의 정보를 서버에 저장하기 때문에 쿠키보다는 보안에 좋지만, 클라이언트가 많아질수록 서버 메모리를 많이 차지하게 된다.
    동시 접속하는 유저가 많아지면 서버에 부하를 주게 되기 때문에 성능 저하의 요인이 될 수 있다.

  • 특징
    • 각 클라이언트에 고유 Session ID를 부여한다.
    • 서버는 Session ID로 클라이언트를 구분하고 클라이언트의 요구에 맞는 서비스를 제공할 수 있다.
    • 서버에서 관리하기 때문에 비교적 보안이 좋다.
    • 접속 시간에 제한을 두어 일정 시간동안 응답이 없으면 정보가 유지되지 않도록 설정할 수 있다.
  • 동작 순서
    1. 클라이언트가 페이지를 요청한다.
    2. 서버에서 세션 ID를 만들고 사용자 정보를 세션 ID와 함께 저장한다.
    3. 생성한 세션 ID를 쿠키에 담아 클라이언트에게 전달한다(Response Header에 Set-Cookie)
    4. 전달받은 쿠키는 클라이언트 PC에 저장된다.
    5. 만들어진 쿠키는 클라이언트가 요청하지 않아도 Request Header에 넣어서 서버에 전송한다.
  • 사용 예시
    • 로그인 같은 보안상 중요한 기능

세션과 쿠키의 차이점

  • 저장 위치: 세션은 서버의 자원을 사용하고 쿠키는 사용하지 않는다.
  • 보안: 세션은 서버에 저장되기 때문에 쿠키보다 보안이 좋다.
  • 요청속도: 세션은 서버의 처리가 필요하기 때문에 쿠키가 세션보다 더 빠르다.

Categories:

Updated:

Leave a comment