쿠키(Cookie), 세션(Session), 그리고 웹스토리지(Web Storage)란?
쿠키 (Cookie)
- 사용하는 이유 : 쿠키를 사용하는 이유는 HTTP 요청은 상태를 가지고 있지 않기 때문
- 쿠키에 정보를 담아서 보내면 서버는 쿠키를 통해 파악할 수 있다.
- 쿠키는 보통 세션 관리를 통해 로그인, 접속시간, 장바구니 등에 활용
- 사용자별로 다른 정보를 표시하는 등 개인화가 가능하고 사용자의 행동패턴을 분석 가능하기 때문에 더 중요한 개념이 되었다.
- 쿠키는 Set-Cookie:키=값;옵션을 사용한다.
- Ex) Set-Cookie:name(네임이라는 키에)=kante(kante라는 값이 들어간다.)
- 단점 : Persistent Cookie의 경우 사용자의 하드디스크에 저장되기 때문에 공공pc에서의 쿠키사용은 개인정보 유출이 될수있기때문에 조심해야된다.
세션 (Session)
- Session ID를 식별자로 데이터를 사용자 브라우저의 쿠키가 아닌 접속한 서버의 DB에 정보를 저장
- 세션의 경우 메모리에 저장하기 때문에 브라우저가 종료되면 사라진다
- 쿠키의 트래픽 문제와 보안상 취약점을 해결하기 위해 사용
- 단점1 : 서버의 리소스를 사용하기 때문에 세션을 많이 쓸 경우 서버에 부하가 생기게 될 수 있다.
- 단점2 : 사용자 인증, 로그인에 많이 쓰이는데 유저의 수가 많아질경우 서버 램이나 DB에 무리를 줄 수 있다
웹스토리지 (Web Storage)
- 데이터를 클라이언트로 저장할 수 있는 자료구조인 Web Storage 스펙이 포함되어 있다
- Web Storage는 키/값(key-value) 형태로 데이터를 저장해서 key를 기준으로 조회하는 패턴
- 영구 저장소(Local Storage)와 임시 저장소(Session Storage)를 따로 두어 데이터의 지속성을 구분할 수 있기 때문에 환경에 맞게 선택하여 사용할 수 있다.
- 웹 환경에서 사용하는 쿠키(Cookie)와 매우 유사하지만 쿠키의 단점을 극복하는 개선점 등이 추가되어 도입
- 웹 환경에서 쿠키는 유효하고 많이 쓰이고 있다.
- 웹 스토리지의 등장이 절대 쿠키를 배제한다는 의미는 아니다.