내배캠/TIL

세션 vs 쿠키 vs 캐시

모닝펄슨 2024. 8. 26. 00:02

쿠키 (Cookie)

 

정의 및 특징

  • 클라이언트 로컬에 저장되는 키와 값이 들어있는 데이터 파일
  • 유효한 시간 명시 가능, 브라우저가 종료되어도 인증이 유지됨
  • 클라이언트의 상태정보를 로컬(브라우저)에 저장 후 참조
  • 브라우저가 Request 시에 Request Header를 넣어 자동으로 서버에 전송

 

구성 요소

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

 

동작 방식

https://sumontasaha80.medium.com/basic-things-about-http-cookies-1c1290f31f7b

 

  1. 클라이언트가 페이지 요청
  2. 서버에서 쿠키 생성
  3. HTTP 헤더에 쿠키 포함시켜 응답
  4. 클라이언트에 보관 (쿠키 만료 기간이 있다면 브라우저 종료되어도 유지)
  5. 같은 요청 할 때 HTTP 헤더에 쿠키 포함
  6. 서버에서 쿠키 읽어 이전 상태 정보 변경 할 필요가 있을 때 쿠키 업데이트한 후 변경된 쿠키 HTTP 헤더에 포함시켜 응답.

 

세션 (Session)

 

정의 및 특징

  • 쿠키를 기반으로 하고 있지만, 사용자 정보파일을 브라우저에 저장하는 쿠키와 달리 서버(웹사이트) 측에서 관리
  • 서버에서는 클라이언트를 구분하기 위해 세션ID를 부여하여 웹 브라우저가 서버에 접속해서 브라우저 종료할 때까지 인증상태 유지
  • 사용자에 대한 정보 서버에 두기 때문에 쿠키보다 보안에 좋지만 사용자가 많아질 수록 서버 비용 증가, 성능 저하 요인.

 

동작 방식

 

  1. 클라이언트가 서버에 1번 요청
  2. 서버가 세션ID 를 생성하고, 쿠키에 담아 응답 헤더에 전달
    • 세션 ID 형태: "SESSIONID = 12A345"
  3. 클라이언트가 쿠키에 세션ID를 저장 ('세션쿠키')
  4. 클라이언트가 서버에 2번 요청
    • 쿠키값 (세션 ID) 포함하여 요청
  5. 서버가 세션ID 를 확인하고, 1번 요청과 같은 클라이언트임을 인지

 

쿠키와 세션의 차이

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

 

 

캐시 (Cache)

  • 사용빈도가 높은 데이터를 고속으로 엑세스 할 수 있는 위치에 두는 것. 임시 저장소.

 

특징

  • 데이터 출력 위치와 가까운 지점에 일시적으로 저장 - 데이터 고속 엑세스 가능
  • 데이터 재사용을 전제로 함
  • 실제 데이터 액세스 부하를 줄일 수 있음
  • 데이터 손실 가능성 있음

 

CDN (Content Delivery Network)

  • 콘텐츠 전송 네트워크, 지리적으로 웹 콘텐츠를 사용자와 가까운 곳에 서버를 분산하여 전송 속도를 높임

 

적합한 시스템

  • 캐시의 데이터가 손실되어도 문제가 없는 시스템
  • 참조 빈도가 높은 데이터 (다시 사용될 확률이 높은 데이터)
  • 읽기 전용 데이터

 

 

 

 

 

 

[참고 자료]

https://btcd.tistory.com/40

 

세션 vs 쿠키 vs 캐시 차이점

ABTCEFG 안녕하세요 여러분! BTC_주먹쥐고 일어서 입니다. IaC로 넘어가기전 기초 탄탄 인프라를 잡는 시간입니다. 다들 IT 멱살 잡고 한걸음 더 나아가 봅시다! 세션 vs 쿠키 vs 캐시 HTTP(상태 비저장

btcd.tistory.com