alt
Home 웹 스토리지(세션 스토리지, 로컬 스토리지)
Post
Cancel

웹 스토리지(세션 스토리지, 로컬 스토리지)

: 쿠키의 단점을 보완하고, 서버가 아닌 클라이언트에 데이터를 저장할 수 있도록 HTML5에서 나온 기술. 따라서, HTML5를 지원하지 않는 브라우저에선 사용 불가능.

  • Key-value 형태이고, 쿠키와 다르게 5MB까지 저장(브라우저마다 용량 차이 있음)
  • 쿠키와 달리, 서버에 매번 전송되지 않아 서버 처리를 줄인다.
  • 쿠키와 달리, 필요할 때만 꺼내 쓰는 것.(자동전송의 위험성이 없음)
  • 유효기간 존재하지 않는다.
  • 세션, 로컬 스토리지 존재
    • 둘 다 window 객체 안에 있음.
    • 둘의 차이는 저장 위치와 데이터 영구성의 차이


로컬 스토리지(반영구적)

  • window.localStorage 객체
  • 브라우저를 종료해도 계속 브라우저에 남아있고, 명시적으로 지우지 않는 한 영구적으로 저장.
  • 도메인별로 생성되어 도메인(origin)이 같은 탭, 창 전체에서 이 storage를 공유
    • 다른 도메인의 로컬 스토리지에는 접근 불가하다.
    • 서로 다른 탭이라도, 같은 도메인이면 동일한 로컬 스토리지 사용
  • 지속적으로 필요한 정보에 사용하기 좋음
    • e.g) 자동 로그인 등

localstorage_location

  • 로컬 스토리지 저장 경로인 ~/.config/google-chrome/Default/Local Storage/leveldb 가보면 leveldb로 저장되어있는 것을 볼 수 있다. filefox의 경우 sqlite로 저장되어있다고 한다.


세션 스토리지

  • window.sessionStorage 객체
  • 쿠키와 달리, 탭/윈도우 단위로 세션 스토리지 생성
    • 즉, window 객체와 동일한 life cycle을 가져 윈도우나 브라우저 탭을 닫을 경우 제거
    • 동일한 탭/윈도우라도, 다른 도메인이라면 또다른 세션 스토리지가 생성된다.
  • 따라서, 세션 스토리지는 독립적(서로 영향이 없음)
  • 윈도우 복제로 생성된 경우 세션 스토리지가 복제되어 생성
  • 잠시동안 필요한 정보를 저장하기에 좋음
    • e.g) 입력했던 폼 저장, 비로그인 장바구니



Reference)

https://www.zerocho.com/category/HTML&DOM/post/5918515b1ed39f00182d3048

https://tristan91.tistory.com/521

https://it-eldorado.tistory.com/90

https://velog.io/@kler/TIL4-%EB%A1%9C%EC%BB%AC%EC%8A%A4%ED%86%A0%EB%A6%AC%EC%A7%80-%EC%84%B8%EC%85%98%EC%8A%A4%ED%86%A0%EB%A6%AC%EC%A7%80-%EC%BF%A0%ED%82%A4-%EC%A0%95%EB%A6%AC

This post is licensed under CC BY 4.0 by the author.