쿠키와 세션

  • 쿠키와 세션, 로컬스토리지의 차이를 한번더 정리해보자.
  • 쿠키와 세션이 사용되는 이유는?
    • http의 무상태성을 극복하기 위해 사용

쿠키

  • http의 일종으로 클라이언트에 저장되는 key-value파일
  • 구성
    • 이름, 값, 만료시간, 전송할 도메인명, 경로 등으로 구성
  • 종류
    • 세션쿠키
      • 만료날짜를 생략
      • 브라우저 종료시까지 유지
    • 영속쿠키
      • 만료날짜를 입력해서 해당 날짜까지 유지

특징

  • key-value로 저장
  • 약 300개 정도의 쿠키 저장 가능
    • 브라우저 스펙에 따라 달라짐
  • 도메인당 20개의 쿠키 저장
  • 4kb까지 저장가능
  • 클라이언트에 저장된다.
  • 쿠키는 서버에 요청할때마다 저장소에있는 쿠키를 알아서 담아서 보낸다.

세션

  • 일정시간동안 같은 브라우저로부터 들어오는 요청을 하나의 상태로 보고, 이상태를 일정하게 유지
  • 유지시간
    • 서버에 접속 - 웹브라우저 종료

특징

  • 브라우저당 세션ID가 생성되어 저장
  • 브라우저 종료시 소멸
  • 서버에서 세션을 삭제 가능
  • 크기 제한 없음

웹스토리지

  • 서버가 아닌 클라이언트내에서 데이터를 저장하는 장소
  • 쿠키의 단점을 보완하기위해 HTML5에서 추가
  • 로컬스토리지, 세션스토리지로 구분
    • 로컬스토리지는 만료기간이 존재안함
    • 초기화하거나 제거하기전까지 존재
    • 페이지변경, 브라우저 종료시에도 유지
    • 도메인이 다른 로컬스토리지는 공유가 불가능
  • 세션스토리지
    • 브라우저 탭 안에 유효한 저장소
    • 브라우저를 닫으면 소멸

특징

  • key-value 구조로 저장
  • 최대 5kb의 용량제한
  • 오로지 문자열데이터만 지원
    • json으로 파싱하거나 하여 좀더 복잡한 정보를 저장한다.
  • 서버 요청시에 같이 날라가지 않는다.
  • 중요성이 낮고 유실되어도 무방한 데이터를 저장하는것을 권장

참고