아래의 저장소들을 connectionless와 stateless를 지향하는 HTTPS 통신 프로토콜의 한계를 보완하기 위해 나온 것들입니다. 즉, 서버가 각각의 클라이언트들을 구별하고, 식별하기 위해 데이터를 저장하는 것입니다.
HTTP/WEB/Internet/Broswer 쿠키
- 서버에서 생성 후 클라이언트에서 관리
- 허용 용량이 작고,
- 텍스트만 저장이 가능
- 설정 시간동안 유지
- Request Header에 저장되어 Request시 항상 서버로 전송
- 필요시 HTTPonly를 설정하여 js를 조작하는 XSS로부터의 보안을 향상 가능
e.g. 장바구니, 자동완성
세션(HTTP Session)
- 서버에서 관리 -> 쿠키보다 보안이 좋음, 사용자 증가 시 메모리 부하
- 브라우저를 종료할 때까지 또는 설정 시간 동안 유지
- JS의 원시 자료형을 모두 지원
웹스토리지 (로컬 + 세션 스토리지)
- 클라이언트에서 관리
- HTML5부터 추가 된 저장소
- 쿠키 vs 웹 스토리지
- 용량이 크고,
- 자동전송 하지 않고,
- CORS 적용으로 CSRF로부터 안전
- 만료일자를 사용을 안할 수 있음. 즉, 영구 저장
- 로컬 vs 세션: 유효 범위와 보존 기간에 따라 분류
로컬 스토리지
- 도메인당 하나씩 생성
- 삭제하지 않으면 영구 저장
세션 스토리지
- 새창/새탭/도메인 마다 별개의 세션을 갖음
- e.g. 회원가입 입력폼, 일회성 로그인
참조: