쿠키와 세션

김나영·2023년 6월 28일
0

Spring

목록 보기
18/38
post-thumbnail

공통점

  • HTTP에 상태 정보를 유지(Stateful)하기 위해 사용

  • 쿠키와 세션은 통해 서버에서는 클라이언트 별로 인증 및 인가를 할 수 있게 됨

쿠키

  • 클라이언트에 저장될 목적으로 생성한 작은 정보를 담은 파일

  • 구성 요소

    • Name (이름): 쿠키를 구별하는 데 사용되는 키 (중복될 수 없음)
    • Value (값): 쿠키의 값
    • Domain (도메인): 쿠키가 저장된 도메인
    • Path (경로): 쿠키가 사용되는 경로
    • Expires (만료기한): 쿠키의 만료기한 (만료기한 지나면 삭제됨)

세션

  • 서버에서 일정시간 동안 클라이언트 상태를 유지하기 위해 사용

  • 서버에서 클라이언트 별로 유일무이한 세션 ID를 부여한 후 클라이언트 별 필요한 정보를 서버에 저장

  • 서버에서 생성한 세션 ID는 클라이언트의 쿠키캆(' 세션 쿠키 ' 라고 부름)으로 저장되어 클라이언트 식별에 사용

업로드중..

  • 서버는 세션ID를 사용하여 세션을 유지

  • 클라이언트가 서버에 1번 요청

  • 서버가 세션ID를 생성하고 쿠키에 담아 응답 헤더에 전달

    • 세션 ID 형태 : " SESSIONID = 12A345 "
  • 클라이언트가 쿠키에 세션ID를 저장(' 세션쿠키 ')

  • 클라이언트가 서버에 2번 요청

    • 쿠키값(세션 ID) 포함하여 요청
  • 서버가 세션ID를 확인하고 1번 요청과 같은 클라이언트임을 인지

비교

쿠키(Cookie)세션(Session)
설명클라이언트에 저장될 목적으로 생성한 작은 정보를 담은 파일서버에서 일정 시간동안 클라이언트 상태를 유지하기 위해 사용
저장 위치클라이언트(웹 브라우저)웹 서버
사용 예사이트 팝업의 "오늘 다시보지 않기" 정보 저장로그인 정보 저장
만료 시점쿠키 저장 시 만료일시 설정 가능(브라우져 종료시도 유지 가능)다음 조건 중 하나가 만족될 경우 만료됨 1. 브라우져 종료 시까지 2. 클라이언트 로그아웃 시까지 3. 서버에 설정한 유지기간까지 해당 클라이언트의 재요청이 없는 경우
용량 제한브라우져 별로 다름 (크롬 기준) - 하나의 도메인 당 180개 - 하나의 쿠키 당 4KB(=4096byte)개수 제한 없음 (단, 세션 저장소 크기 이상 저장 불가능)
보안취약 (클라이언트에서 쿠키 정보를 쉽게 변경, 삭제 및 가로채기 당할 수 있음)비교적 안전(서버에 저장되기 때문에 상대적으로 안전)

0개의 댓글