캐시: 동일한 데이터에 반복해서 접근해야 하거나 많은 연산이 필요한 일일때, 결과를 빠르게 이용하고자 임시 저장소이다.
캐싱: 웹페이지에 방문할 때마다 변하지 않는 정적 자산(static asset)을 캐시를 사용하여 데이터를 재사용하는 과정을 말한다.
인증: 어떤 개체(사용자 또는 장치)의 신원을 확인하는 과정
인가: 어떤 개체가 어떤 리소스에 접근할 수 있는지 또는 어떤 동작을 수행할 수 있는지를 검증하는 것, 즉 접근 권한을 얻는 일
- 클라이언트에 데이터를 저장할 수 있도록 HTML5부터 나온 새로운 방식의 데이터 저장소
- 로컬 스토리지와 세션 스토리지가 존재
- key와 value 쌍의 형태로 데이터 저장
- window 객체의 프로퍼티로 존재
장점:- 문자열 외에도 자바스크립트의 모든 원시형 데이터와 객체 저장 가능
- 도메인 단위로 접근이 제한되는 CORS 특성 덕분에 CSRF로부터 안전
단점:- HTML5를 지원하는 브라우저만 사용 가능
- XSS로부터 위험 - local storage에 접근하는 Js 코드로 쉽게 접근 가능
로컬 스토리지와 세션 스토리지 차이점:- 로컬 스토리지는 데이터 영구 저장이 가능
- 로컬 스토리지 명령어: window.localStorage
- 세션 스토리지는 브라우저 탭/윈도우가 닫히면 스토리지가 초기화
- 세션 스토리지 명령어: window.sessionStorage
HTTP 쿠키(웹 쿠키, 브라우저 쿠키)란, 서버가 사용자의 웹 브라우저에 전송하는 작은 데이터 조각이다. 브라우저는 이 데이터 조각들을 저장해 놓았다가, 동일한 서버에 재 요청 시 저장된 데이터를 함께 전송한다. 쿠키는 두 요청이 동일한 브라우저에 들어왔는지 아닌지를 판단할 때 주로 사용한다. 이를 이용하면 사용자의 로그인 상태를 유지할 수 있다. 위에서 설명한 바와 같이, 상태가 없는(stateless) HTTP 프로토콜에서 브라우저의 상태 정보를 기억할 수 있게 하는 방법이다.
요약: Cookie는 클라이언트에 저장되는 데이터 파일이므로, 서버 쪽, 보안에 위협이 되는 요소가 있어서는 안됩니다. 그러므로 보통 로그인 폼 자동 완성이나, 쇼핑몰에 담은 장바구니 기능 등에 사용
쿠키의 종류
- Session Cookie: 메모리에만 저장되며, 만료시간이 있지만 브라우저 종료시 삭제되는 쿠키
- Persistent Cookie: 파일로 저장되며, Max-Age 설정을 통해 장기간 유지 가능하고 브라우저 종료와 관계없이 사용 가능한 쿠키
- Secure Cookie: HTTPS에서 사용되는 암호화된 쿠키. 비교적 안전하지만 실질적 보안이 제공되지 않아 민감한 데이터 저장 절대 금지
- Third Party Cookie: 다른 도메인에 요청이 필요할 때 생성하는 쿠키. 주로 광고 목적으로 사용되며, 유저 개인정보 악용의 문제 발생