1. Cookie, Sessionstorage, Localstorage 정리
Cookie | Web Storage | ||
Sessionstorage | Localstorage | ||
특징 |
• 최대 4kb • 만료기한 있음 • Key, Value 형태 • 서버와 로컬에 정보 저장 • 클라이언트에 300개까지 저장 가능 • 하나의 도메인 당 20개의 값만 가능 |
• 각 클라이언트 고유 ID 부여 • 로컬에만 정보 저장 • 클라이언트에 대한 정보 저장 • 최대 5mb(브라우저마다 차이있음) • Key, Value 형태 |
|
• 세션 종료시 정보 삭제 = 데이터 영구적X | • 데이터 영구적O | ||
동작 | 1. 클라이언트 → 페이지 요청 2. 서버에서 쿠키 생성 3. http 헤더에 쿠키를 넣어 응답 4. 쿠키가 만료되지 않았다면 브라우저 종료 후에도 클라이언트에서 보관 5. 같은 요청 시 http 헤더에 쿠키를 함께 보냄 6. 서버에서 쿠키를 읽어 이전 상태와 다를 경우 내용을 업데이트하여 http 헤더에 포함해 응답 |
1. 클라이언트 → 서버 접속 → 세션 ID 발급 2. 클라이언트는 쿠키로 세션 ID가지고 있음 3. 클라이언트 → 쿠키 세션 ID 사용하여 서버에 요청 4. 서버 → 세션 ID로 정보 가져옴 → 클라이언트에 응답 |
|
장점 | • 대부분의 브라우저 지원 | • 용량 큼 • 보안 우수 (쿠키 < 웹스토리지) • 불필요한 데이터 저장X |
|
단점 | • 낮은 용량 • 매 http 요청마다 api호출 → 서버 부담 • 암호화X → 정보 도난 위험 |
• 사용자↑ = 서버 메모리 낭비 • html5를 지원하지 않는 브라우저에서 사용 불가 |
|
사용 예 | • 오늘 더 이상 이 창을 보지 않음 | • 일회성 로그인 • 비로그인 장바구니 • 입력 폼 정보 • 스크롤 위치 값 |
• 자동 로그인(사용자가 지우지 않는 한) • 다크/라이트 모드 |
사용시 주의 | X | 중요 정보 저장X (비밀번호 등) String type의 데이터만 지원함 |
2. Cookie 사용법
1) 생성하기
document.cookie = "key = value";
// expires key에 UTC time 값을 넣어 만료기간 설정
document.cookie = "key = value; expires = Thu, 18 Dec 2013 12:00:00 UTC";
// parametor를 통해 어느 path에 쿠키를 넣을 것인지 설정할 수도 있다.
document.cookie = "key = value; path = /";
2) 읽기
// javascript
var a = document.cookie;
3) 내용 변경하기
같은 key에 다른 value가 들어갈 경우 내용이 변경된다.
document.cookie = "key = value2; expires = Thu, 18 Dec 2013 12:00:00 UTC; path = /";
4) 삭제하기
만료기간(expires)값을 과거로 바꾸어 없앤다.
document.cookie = "key = ; expires = Thu, 01 Jan 1970 00:00:00 UTC; path = /;";
3. sessionStorage& localStorage 사용법
1) 기본 사용법
setItem() | 값 추가하기 |
getItem() | 값 가져오기 |
removeItem() | 값 삭제하기 |
clear() | 도메인 내의 localStorage 값 전체 삭제하기 |
length | 전체 item 개수 |
key() | index로 key값 찾기 |
2) 값 생성하기
// sessionStorage
window.sessionStorage.setItem(key, value);
// localStorage
window.localStorage.setItem(key, value);
3) 값 가져오기
// sessionStorage
window.sessionStorage.getItem(key);
// localStorage
window.localStorage.getItem(key);
4) 값 삭제하기
// sessionStorage
window.sessionStorage.removeItem(key);
// localStorage
window.localStorage.removeItem(key);
5) 도메인 내의 sessionStorage/localStorage 값 전체 삭제하기
// sessionStorage
window.sessionStorage.clear();
// localStorage
window.localStorage.clear();
6) 전체 아이템 개수
// sessionStorage
window.sessionStorage.length;
// localStorage
window.localStorage.length;
7) Index로 Item의 key값 찾기
// sessionStorage
window.sessionStorage.key(index);
// localStorage
window.localStorage.key(index);
'Programming > Javascript' 카테고리의 다른 글
[Javascript/React] 이벤트 버블링 제거하기 / 해당 영역 클릭시 이벤트 방지 / Event Bubbling (0) | 2023.03.09 |
---|---|
[Javascript] 클릭 시 url 페이지 띄우기(새 창, 새 탭) (0) | 2022.11.07 |
[Javascript] Scroll API, 스크롤 현재 위치, 디바이스 세로 사이즈 찾기 (0) | 2022.05.23 |
[Javascript] 정규식 모둠세트 (0) | 2021.01.21 |