쿠키(Cookie), 세션(Session) 차이점

2011. 3. 15. 05:41카테고리 없음


- http 서버는 사용자의 연결을 계속 유지하지 않는 방식으로 처리됨
- 사용자의 요청에 대한 응답을 한 후 연결을 해제
- 클라이언트와의 정보 유지를 위해 쿠키와 세션을 사용

1. 쿠키 (Cookie)
- 서버에 접속시 접속한 클라이언트의 정보를 클라이언트에 저장한다.
- 이후에 서버로 전송되는 요청에는 쿠키가 가지고 있는 정보가 같이 포함되어서 전송
- 크기는 4KB이하
- 쿠키는 이름, 값, 유효기간, 도메인, 경로 등으로 구성

@ JSP에서의 쿠키 생성 및 사용

(1) 생성
Cookie cooke = new Cookie(String name, String value);
(2) 쿠키 추가(생성후에 반드시 추가)
response.addCookie(cookie);
(3) 값을 수정
cookie.setValue(newValue);
(4) 읽기
- 쿠키를 읽어 올 때
Cookie[] cookies = request.getCookies();
- 쿠키 이름 읽기
String cookies[i].getName();
- 쿠키 값읽기
String cookies[i].getValue();
(5) 쿠키의 수명(지속시간)
cookie.setMaxAge(int expiry);


2. 세션 (Session)
- 웹서버 쪽의 웹 컨테이너에 상태를 유지하기 위한 정보를 저장
- 저장 데이터에 제한이 없음
- 웹서버는 각각의 웹 브라우저로부터 발생한 요청에 대하여 특정한 식별자를 부여하여 같은 브라우저인지 구별
- 세션쿠키 라고도 한다.
- 브라우저를 닫거나, 서버에서 이 쿠키를 삭제 했을때만 삭제가 되므로 비교적 persistent 쿠키보다 안전하다고 볼수 있다.
- 통신할때만 발동이 되는 쿠키라고 볼수 있다.

@ JSP에서의 세션사용 및 설정

(1) 세션 설정
session.setAttribute("memId","test");
- 세션 속성값은 객체 형태
(2) 세션 가져오기
String id = (String)seesion.getAttribute("memId");
- 리턴 타입이 object이므로 String으로 변환
(3) 세션 속성의 이름을 반환
Enumeration names = session.getAttributeNames();
(4) 세션 삭제
session.removeAttribute("memId");
(5) 세션의 모든 속성 해제
session.invalidate();
(6) 세션의 최대 유지시간 설정(초단위 설정)
setMaxInactiveInterval(int interval);
(7) 세션의 최대 유지시간 반환
int sec = getMaxInactiveInterval();