본문 바로가기
카테고리 없음

Local Storage , Session Storage의 차이

by 신방동불주먹 2023. 5. 9.
반응형

Local Storage , Session Storage의 차이

 

Local storage와 Session Storage의 가장 큰 차이는 브라우저 종료시 데이터가 사라지냐.

Local Staroage는 관리자가 별도로 데이터를 삭제 해 주지않는 이상 데이터를 계속 가지고 있고

Session Storage는 브라우저 종료시 데이터가 사라진다.

 

 

 

Local Storage

  • localStorage는 시간제한이 없고 브라우저가 꺼져도 죽지 않는다. (브라우저를 종료하고 나중에 다시 접속해도 값이 유지가됨)
  • 관리자가 데이터를 명시적으로 삭제 시켜줘야만 데이터 삭제가 된다. 
  • 탭을 여러개 열어도 공유된다

 

Session Storage

  • 브라우저가 열려있는 동안만 데이터가 살아있으며 브라우저 종료시에 데이터도 함께 없어진다.
  • 새로고침을 해도 데이터는 유지된다.
  • 탭마다 별도의 저장소가 분리 되어 있어 데이터를 공유하지 않는

 

 

  • 페이지 세션은 브라우저가 열려있는 한 새로고침과 페이지 복구를 거쳐도 남아있음.
  • 페이지를 새로운 탭이나 창에서 열면, 세션 쿠키의 동작과는 다르게 최상위 브라우징 맥락의 값을 가진 새로운 세션을 생성.
  • 같은 URL을 다수의 탭/창에서 열면 각각의 탭/창에 대해 새로운 sessionStorage를 생성.
  • 탭/창을 닫으면 세션이 끝나고 sessionStorage 안의 객체를 초기화.

 

 

예제

  • setItem : 현재 출처의 세션 Storage 객체에 접근한 후, Storage.setItem()을 사용해 항목 하나를 추가.
  • getItem :  항목 조회
  • removeItem: 항목 삭제

 

- Login.vue

로그인 성공 시 id 값을 sessionStorage에 저장.

 

        const submit = () =>{
            axios.post("/api/account/login",state.form).then((res)=>{
                store.commit('setAccount',res.data);
                sessionStorage.setItem("id",res.data);
                router.push({path : "/"});
                window.alert("로그인 하였습니다.");
            }).catch(()=>{
            window.alert("로그인 정보가 존재하지 않습니다.");
            });
        }

 

- App.vue

새로고침 시 sessionStrorage를 조회해서 있으면 로그인 상태 유지

  setup(){
    const id = sessionStorage.getItem("id");
    if(id){
        store.commit("setAccount",id);
    }
  }

 

-Header.vue

로그아웃 클릭 시 sessionStorage의 id 값을 삭제

export default {
  name: 'VueHeader',
  setup(){
    const logout = () => {
    store.commit('setAccount',0);
    sessionStorage.removeItem("id");
    router.push({path : "/"});
  }
  return {logout};
}
}

 

 

 

반응형