web 스토리지의 개념과 사용법
- 웹 스토리지 객체인 localStorage와 sessionStorage는 브라우저 내에 키-값 쌍을 저장할 수 있게 해준다.
1.쿠키
- 서버가 사용자의 웹브라우저에 전송하는 작은 데이터 조각
- 두 요청이 동일한 브라우저에서 들어왔는지 아닌지를 판단할 때 주로사용된다,
-> 사용자의 로그인 상태유지 가능 / 상태가 없는 http프로토콜에서 상태 정보를 기억시켜주기 때문이다. - 브라우저는 사용자가 쿠키를 생성하도록 한 동일 서버에 접속할 때마다 쿠키 내용을 헤더에 넣어서 전달
1. 사용자가 로그인하면 서버는 http 응답 헤더의 set-cookie에 담긴 세션식별자 정보를 사용해 쿠키 설정한다.
2. 사용자가 동일 도메인에 접속하려고 하면 브라우저는 http cookie 헤더에 인증 정보가 담긴 고유값 을 함께 실어 서버에 요청을 보낸다.
3. 서버는 브라우저가 보낸 요청 헤더의 세션 식별자를 읽어 사용자를 식별한다. - 쿠키에 수명을 지정할 수 있다.
2. sessionStorage
- 각각의 출처에 대해 독립적인 저장 공간을 페이지 세션이 유지 되는 동안 (브라우저가 열려있는 동안) 제공합니다.
- 세션에 한정해 브라우저 또는 탭이 닫힐 때 까지만 데이터를 저장합니다.
- 데이터를 절대 서버로 전송하지 않는다.
- 저장공간이 쿠키보다 크다.(최대 5mb)
- window.sessionStorage 속성을 통해 사용
3. localStorage
- 브라우저를 닫았다 열어도 데이터가 남아있다.
- 유효기간 없이 데이터를 저장하고 javaScript를 사용하거나 브라우저 캐시 또는 로컬 저장 데이터를 지워야만 사라진다.
- 저장공간이 셋 중 제일 크다.
- window.localStorage 속성을 통해 사용
두 속성 중 하나에 접근하면 storage객체의 인스턴스를 생성하게 되고 그걸 사용해 데이터 항목을 추가, 회수, 제거 가능
sessionStorage 와 localStorage 의 Storage객체는 각각의 출처별로 다른 것을 사용하며 서로 독립적으로 기능
4. 쿠키와 webStorage의 차이
- 쿠키와 다르게 webStorage 객체는 네트워크 요청시 서버로 전송되지 않는다.
-> 쿠키보다 더 많은 자료를 보관 - 개발자가 브라우저 내 webStorage 구성 방식을 설정할 수 있다.
- 쿠키와 다르게 서버가 http 헤더를 통해 스토리지 객체를조작할 수 없다.
-> webStorage 객체 조작은 모두 자바스크립트 내에서 수행된다, - webStorage객체는 도메인, 프로토콜, 포트로 정의되는 origin에 묶여있어 프로토콜과 서브도메인이 다르면 데이터에 접근할 수 없다.
'자바스크립트 궁금증' 카테고리의 다른 글
a태그 사용한 첨부파일 다운로드 방법 (0) | 2024.07.05 |
---|---|
자바스크립트 - 동기처리와 비동기처리 (0) | 2024.01.05 |
1220 / 비동기 처리 패턴 promise (0) | 2023.12.28 |
1219 / html 메서드 / fetch (0) | 2023.12.19 |
1216 / 삼항연산자와 구조분해 (0) | 2023.12.16 |