본문 바로가기

JSP

JSP Session vs Cookie (세션과 쿠키)

1. 쿠키 (Cookie)

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

 

 

2. 세션 (Session)

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


**공통점

- 고객 정보(접속한 유저)를 저장하는 매체이다.

- 유저끼리 서로 간섭을 못한다.(접근 권한 불가능)


**차이점

- 쿠키

1. 클라이언트측 저장

2. 문자열 저장용이다. (자료형이 존재하지 않고, 텍스트 파일만 가능하다)

3. 만료 시간 지정이 가능하다.(장기 보관이 가능하고 재접속시에도 유지된다.)


- 세션

1. 서버측 저장

2. 모든 타입 저장용(문자열, 객체,  기타 등등 가능)

3. 만료 시간 지정이 가능하다.(대신 접속 고객에 한해서)



**쿠키 사용

(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);


**세션 사용

(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();




**쿠키 사용 예제

// 여러가지 쿠키 저장 방법


//여러가지 쿠키 읽어오는 방법



**세션 사용예제

//세션 저장하는 방법



//세션 읽어오는 방법


출처 : http://egloos.zum.com/xxwony/v/27583


'JSP' 카테고리의 다른 글

MVC 디자인 패턴(Model1, Model2)  (0) 2018.11.20
JSP 파일 업로드  (0) 2018.11.16
JSP 표준 액션 태그  (0) 2018.11.14
JSP 내장 객체 및 생명주기(Scope)  (0) 2018.11.14
JSP session 객체  (0) 2018.11.14