오리진 ● [프로토콜 / hostname / port ]로 이루어져 있다. ex) https://www.naver.com:443 [프로토콜] + host + (포트번호) ● 같은 오리진 내에서는 로컬스토리지가 공유된다 = 오리진에 로컬스토리지가 종속된다. ex) https://www.naver.com 은 https://search.shopping.naver.com와 오리진이 다르기 때문에 로컬스토리지 공유x
2) 로컬스토리지 사용처
● 로그인유지
클라이언트가 서버로 ID/PW를 보내면 서버는 클라이언트에 토큰을 보낸다.
이 토큰은 로컬스토리지에 저장되고 여기서 클라이언트는 토큰가져와서 사용하게 된다.
● 캐싱
UX를 개선하기 위해 텍스트 창에 입력한 값을 로컬스토리지를 통해 캐싱을 하게된다.
ex ) 검색어 자동완성
자동완성을 사용하면 이전 입력값들을 다시 입력하지 않아도 되기때문에 번거로움을 줄일 수 있다.
2. 세션 스토리지
웹 스토리지 객체로 브라우저 내에 { key : value } 형태로 오리진에 종속되어 저장되는 데이터
오리진이 같은 브라우저 내에서 공유된다.
1) 세션스토리지 특징
하나의 키에 오로지 하나의 값만 저장된다.
최대 저장용량 5MB
사용자가 브라우저에서 탭을 닫으면 데이터는 만료된다.
사용량 : 세션스토리지 <<< 로컬스토리지
3. 쿠키
브라우저에 저장된 데이터 조각
클라이언트에서 먼저 설정할수도 서버에서 먼저 설정할수도 있다
보통은 서버에서 먼저 설정한다.
서버에서 만료기한등을 설정 컨트롤하기 때문
최대 4kb 저장가능
쿠키 설정 과정
서버에서 쿠키 설정
1. 서버에서 응답헤더로 Set-Cookie로 설정해서 쿠키를 보낸다. 2. 클라이언트에서 요청헤더 Cookie에 설정되어 자동으로 서버에 전달된다. 3. 브라우저에도 저장되게 됩니다.
클라이언트에서 쿠키 설정 ● 자바스크립트 - document.cookie를 통해 쿠키를 설정 ●header - Cookie에서 값을 정할 수있다.
● 클라이언트가 쿠키를 설정하면 쿠키에 대한 제어권을 클라이언트가 잡게 된다. -> 쿠키에 민감한 정보가 담길 수 있기 때문에 서버가 제어권을 가져야 한다.