브라우저를 사용하는 환경(로컬 컴퓨터)에 서버에서 받은 데이터를 쿠키 저장소에 저장
정보의 유효기간을 지정할 수 있다. 유효기간 미지정 시 메모리에 기록되기 때문에 지정하지 않으면 웹 브라우저가 닫힐 때 삭제된다. 지정했다면 웹 브라우저를 닫아도 삭제되지 않는다. (하드디스크에 저장)
경로 값을 통해 도메인의 기준 경로(+ 하위 경로까지) 지정할 수 있고 같은 도메인을 사용하는 서버에서만 전송 가능하다. (mail.naver.com / blog.naver.com에서는 전달 가능)
지워져도 되는 중요하지 않은 정보들을 브라우저에 저장
ex) 아이디 자동저장, 팝업창 안보기, 로그인 안한 상태로 장바구니 넣기
웹 서버 내 웹 컨테이너에 클라이언트의 상태 또는 값을 저장해둔 것
웹 컨테이너는 하나의 웹 브라우저마다 한 세션을 생성한다. (하나의 웹 브라우저가 여러 JSP를 요청해도 웹 컨테이너는 하나의 세션만 생성한다)
브라우저가 닫히거나 서버 내에서 세션 삭제시 소멸된다. (세션이 유효기간을 갖지 않으면 나중에 웹 컨테이너에 쌓이게 되서 메모리가 부족해질 수 있다.)
웹 서버에서 클라이언트를 구분하기 위해 세션 ID를 만든다. 하지만, 같은 클라이언트가 요청했는지 스스로 구분할 수 없기에 세션과 별도로 브라우저에 세션 ID 값이 담긴 쿠키를 만들어 저장하고 이 쿠키와 비교해서 세션 값을 꺼내준다.
서비스 제공자가 직접 관리해야 하고 보안이 중요한 것은 세션으로 서버 안에 저장된다.
서버에서는 세션에 로그인 정보를 갖고 있다. 내 세션임을 증명할 쿠키는 내 브라우저에 저장.
ex) 로그인 한 정보 유지 및 확인
웹 브라우저가 동일한 JSP에 연속으로 요청할 경우 첫 번쨰 요청의 결과를 로컬 PC의 캐시에 저장하고, 두 번째 요청시 WAS에 접근하는 것을 대신하여 로컬 PC에서 캐시를 꺼낸다.
가져오는데 비용이 드는 데이터(이미지, css, js,배너 등등)를 한번 가져오고 나서 임시로 저장해둔다.
웹 부하를 줄여주는데 도움이 된다.
단, 자주 변경되는 데이터를 캐시로 저장한다면, 캐시를 삭제하지 않았을 경우 변경되지 않은 데이터를 출력될 수도 있으니 주의.
ex) 이미지는 가져오는데 비용이 많이 들기에 한 번 받아온 데이터는 사용자의 컴퓨터 또는 중간 역할을 하는 서버에 저장한다.
참고
[WEB CS] Cookie, Session, Cache (쿠키, 세션, 캐시) 에 대해, 그리고 차이점에 대해 알아보자!