일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 스프링
- Spring
- 파이게임
- oracle
- 스프링부트 채팅서버
- mysql
- 스프링부트
- js
- pygame
- javascript
- 자바스크립트
- java8
- LeetCode SQL
- SQL 문제풀이
- python
- 구글로그인
- oauth2
- Leetcode
- spring boot
- 오라클
- 코틀린 클래스
- 프로그래머스
- SQL프로그래머스
- MSA
- 스프링시큐리티
- SQL
- 자바8
- 자바 스트림
- springboot
- kotlin 클래스
Archives
- Today
- Total
웅겹살의 프로그래밍 삼매경
[Web] localStorage와 sessionStorage 본문
728x90
웹 스토리지 객체(web storage object)인 localStorage와 sessionStorage는 브라우저 내에 키-값 쌍을 저장할 수 있게 해준다.
이 둘을 사용하면 페이지를 새로 고침하고(sessionStorage의 경우) 심지어 브라우저를 다시 실행해도(localStorage의 경우) 데이터가 사라지지 않고 남아있다.
- 쿠키와 다르게 웹 스토리지 객체는 네트워크 요청 시 서버로 전송되지 않는다. 이런 특징 때문에 쿠키보다 더 많은 자료를 보관할 수 있다. 대부분의 브라우저가 최소 2MB 혹은 그 이상의 웹 스토리지 객체를 저장할 수 있도록 해준다. 또한 개발자는 브라우저 내 웹 스토리지 구성 방식을 설정할 수 있다.
- 쿠키와 또 다른 점은 서버가 HTTP 헤더를 통해 스토리지 객체를 조작할 수 없다는 것. 웹 스토리지 객체 조작은 모두 자바스크립트 내에서 수행됨.
- 웹 스토리지 객체는 도메인·프로토콜·포트로 정의되는 오리진(origin)에 묶여있다. 따라서 프로토콜과 서브 도메인이 다르면 데이터에 접근할 수 없다.
두 스토리지 객체는 동일한 메서드와 프로퍼티를 제공
- setItem(key, value) – 키-값 쌍을 보관
- getItem(key) – 키에 해당하는 값을 받아옴
- removeItem(key) – 키와 해당 값을 삭제
- clear() – 모든 것을 삭제
- key(index) – 인덱스(index)에 해당하는 키를 받아옴
- length – 저장된 항목의 개수를 얻음
두 스토리지 객체는 Map과 유사하다. 하지만 인덱스를 사용해 키에 접근할 수 있다는 점(key(index))에서 차이가 있다.
localStorage
- 사용자 세션 데이터 유지할수 있다
- 브라우저 닫았다가 다시 열었을 때도 지속된다.
- 탭을 여러개 열어도 공유된다.
- 명시적으로 삭제될때까지 지속된다.
- 변경 사항은 저장되어 현재 및 향후 사이트 방문 시 사용할 수 있다.
* 사용자가 브라우저 창을 닫았을 때 데이터는 삭제되지 않으며, 일, 주, 월 및 연도에 사용할 수있는 만료 날짜없이 사용자 정보 데이터를 저장한다.
1
2
3
4
5
6
7
8
9
|
//Set the value in a local storage object
localStorage.setItem('name', 'sanghoone');
//Set the value in a local storage object
localStorage.getItem('name');
//Delete the value from local storage object
localStorage.removeItem('name'); //Delete specifice obeject from local storege
localStorage.clear(); //Delete all from local storege
|
sessionStorage
- 브라우저 세션 기간 동안 만 사용할 수 있으며 탭이나 창을 닫을 때 삭제된다.
- 새로고침을 해도 유지된다.
- 변경 된 사항은 현재 페이지에서 닫힐 때까지 저장되어 사용할 수 있다.
- 탭이 닫히면 저장된 데이터가 삭제 된다.
1
2
3
4
5
6
7
8
9
|
//Set the value in a session storage object
sessionStorage.setItem('name', 'sanghoone');
//Set the value in a session storage object
sessionStorage.getItem('name');
//Delete the value from sessionstorage object
sessionStorage.removeItem('name'); //Delete specifice obeject from session storege
sessionStorage.clear(); //Delete all from session storege
|
728x90
'Web > Web 정보' 카테고리의 다른 글
[Web] 프레임워크와 라이브러리의 차이점 (0) | 2022.06.05 |
---|---|
[Web] HTTP Status Code Cheat sheet (HTTP 상태코드 쉽게 외우기) (0) | 2022.06.04 |
[Web] Logging Level(로그 레벨) 이란? (0) | 2021.07.10 |
[Web] Cookie 와 Session (2) | 2021.07.07 |
Comments