우리가 사용하는 HTTP의 프로토콜 특성이자 약점을 보완하려고 쿠키나 세션을 사용합니다.
HTTP 프로토콜은 비연결성(connectonless), 무상태 프로토콜(stateless) 특징을 가집니다.
이러한 특성들 때문에 서버는 클라이언트가 누구인지 계속 확인해야 하므로, 이를 보완하기 위해 쿠키를 사용한다.
브라우저 저장소에 대해 알고 가려면 쿠키에 대해 한번 알아보고 가는 것이 좋습니다.
쿠키는 클라이언트에 저장되는 키와 값이 들어가있는 작은 데이터 파일입니다.
사용자가 웹 브라우저를 이용하여 웹사이트에 접속할 때, 해당 웹 사이트에서 이용자의 웹 브라우저에 일정한 상태 정보를 보내고 웹 브라우저는 이를 작은 크기의 텍스트 파일로 만들어서 사용자의 컴퓨터(로컬)에 저장합니다.
쿠키에 이용자의 로그인 정보를 저장하면, 다른 웹사이트를 갔다오더라도 반복해서 로그인하는 수고를 없앨 수 있다.
쇼핑의 경우 마음에 드는 물건을 카트에 담아두는 경우 다른 웹사이트를 갔다오더라도 다시 카트에 내용을 불러올수 있다.
웹 스토리지를 사용하면 웹 어플리케이션이 사용자의 브라우저 내에 로컬로 데이터를 저장할 수 있다.
HTML5 이전에는 애플리케이션 데이터가 모든 서버 요청에 포함된 쿠키에 저장됬는데 쿠키에 비해 웹 저장소는 더 안전하고 웹 사이트 성능에 영향을 주지 않으며 많은 양의 데이터를 로컬에 저장할 수 있다.
쿠키의 단점
4KB 데이터 저장으로 제한
HTTP Request에 암호화 되지 않은 상태로 사용하기 때문에 보안이 취약
쿠키는 매번 서버로 전송한다.
쿠키를 사용하면 모든 웹 요청은 쿠키 정보를 포함하여 서버로 전송하는데, web storage는 클라이언트에 존재할뿐 서버로 전송되는 것이 아니라 네트워크 트래픽 비용을 줄여준다고 합니다.
Web Storage는 문자열 뿐만 아니라 객체도 저장할 수 있습니다.
Web Storage는 용량의 제한이 없습니다.
쿠키는 클라이언트에 최대 300개의 쿠키를 저장할 수 있고 하나의 쿠키는 최대 4KB로 제한됩니다. Web Storage는 이런 제한이 없습니다.
쿠키는 만료일자를 지정해야되서 언젠가 제거 되지만, Web Storage는 영구적으로 존재합니다.
localStorage
저장한 데이터를 명시적으로 지우지 않는 이상 영구적으로 보관이 가능
브라우저를 닫았도 계속 유지됨
도메인마다 로컬스토리지가 별도로 생성되고, windows의 LocalStorage를 통해 저장과 조회 가능
sessionStorage
브라우저를 닫으면 삭제된다.
windows의 SessionStorage를 통해 저장과 조회 가능
이 친구는 같은 사이트의 같은 도메인이라도 브라우저가 다르면 서로 다른 영역이라고 합니다.