쿠키(Cookie)
웹 브라우저가 저장하고 있는 데이터로, 웹 서버에 요청을 보낼 때
쿠키를 요청 헤더에 담아서 같이 전송한다.
장/단점
클라이언트의 일정 폴더에 정보를 저장하기 때문에 서버의 부하를 줄일 수 있다.
데이터가 사용자 컴퓨터에 저장되기 때문에 보안의 위협을 받을 수 있다.
데이터 저장 용량의 한계가 있다.(소용량의 문자열 데이터)
일반 사용자가 브라우저 내 기능인 "쿠키 차단"을 사용하면 무용지물이 된다.
쿠키 생성
Cookie 객체명 = new Cookie("Key","Value");
쿠키 저장
사용자 컴퓨터에 저장해야 하므로 응답을 통해서 생성한 쿠키를 보내주어야 한다.
response.addCookie(쿠키객체);
쿠키 사용
사용자가 요청 때 함께 보내주는 헤더에서 쿠키를 꺼내 사용한다.
request.getHeader("Cookie")
요청에 있는 Header 정보 중에 Cookie 라는 이름의 헤더가 있는지 확인
null이라면 전송된 쿠키가 하나도 없다는 뜻
request.getCookies()
전송된 쿠키 객체들의 배열
쿠키객체.getName()
쿠키의 이름(Key)
쿠키객체.getValue()
쿠키의 값(Value)
쿠키 수정
쿠키객체.setValue("새로운 값");
쿠키 삭제
쿠키의 유효기간을 설정해주는 방식으로 삭제할 수 있다.
쿠키객체.setMaxAge(n)
n초만큼 쿠키를 유지하다가 삭제되도록 설정
쿠키 수정이나 삭제시 설정된 쿠키객체를 다시 response를 통해
사용자 컴퓨터에 추가해준다.(기존 정보로 만들어진 쿠키를 덮어씌우기 위해)
세션(Session)
내장객체로서 브라우저마다 하나씩 존재하고 고유한 SessionID 생성 후 정보를 저장한다.
클라이언트 측에는 SessionID만 저장해주고 후에 클라이언트가 정보를 필요로 할 땐
그 SessionID만 보내주며 정보를 요청한다.
SessionID는 클라이언트 측에 쿠키로 저장이 된다.
세션의 장/단점
JSP에서만 접근할 수 있기 때문에 보안성이 좋고 저장 용량의 한계가 거의 없다.
서버에 데이터를 저장하므로 서버 부하에 걸릴 수 있다.