쿠키와 세션 설명 및 이해 :: 개발/일상_Mr.lee

쿠키와 세션 설명 및 이해

Posted by Mr.mandu.
2016. 4. 4. 07:46 개발/web, html5,jsp

쿠키

 - 서버가 아닌 클라이언트 컴퓨터의 하드디스크에 사용자의 정보를 저장

 - 클라이언트의 일정 폴더에 정보를 저장하기 때문에 서버의 부하를 줄일 수 있음

 - 사용자측에 대한 정보를 보관해 두었다가 웹 서버의 요청에 의해 그 정보를 원하는 순간 사용할 수 있게 함


크기는 4KB 이하로 제한, 300개까지의 데이터 정보 배열을 저장 할 수 있음. 즉, 최대 용량은 4KB X 300개 = 1.2MB

※ 이미지 정보는 대부분 용량이 크기 때문에 경로만 저장


response 객체를 사용해 쿠키 정보를 클라이언트에 저장해두었다가 이를 request 객체를 사용하여 가져옴


서버가 클라이언트에 쿠키를 설정하기 위한 단계

1. 쿠키 객체 생성

2. 쿠키에 속성 값 설정

3. response 객체의 addCookie() 메소드를 호출하여 쿠키 추가


ex)

//1. Cookie 객체 생성

Cookie c = new Cookie("id", "leeMandu")


//2. 유효기간 설정

c.setMaxAge(365*24*60*60) //365일


//3. 클라이언트에 쿠키 전송

response.addCookie(c);


//4. 쿠키를 생성하여 클라이언트에 전송

response.addCookie(new Cookie("pwd", "lee123"));

response.addCookie(new Cookie("age", "27"));


이후에 인터넷 옵션에서 쿠키 파일을 확인 가능


서버가 클라이언트로부터 쿠키의 정보를 얻어오는 예제!

1. 쿠키 객체를 얻어옵니다.

2. 쿠키 객체에 설정된 값을 알아냅니다.


request 객체의 getCookies() 메소드를 사용하면 클라이언트에 설정된 모든 쿠키 객체들을 얻어올 수 있다.

ex) 

Cookie[] cookies = request.getCookies();

for(Cookie c : cookies){

out.println(c.getName()+" : "+ c.getValue()+"<br>");

}


쿠키삭제 방법

cookie.setMaxAge(0);

이렇게 하면 쿠키의 유효기간이 만료되어 삭제 됩니다.




세션(session)

 - jsp(서버)에서만 접근 가능하므로 보안 유지에 강력

 - 저장할 수 있는 데이터에 한계가 없음

 - 세션은 서버 상에 존재하는 객체로서 브라우저 단위당 한 개씩 존재

 - 세션은 웹 브라우저를 닫기 전까지 페이지를 이동하더라도 사용자의 정보를 잃지 않고 서버에 보관할 수 있도록 하는 객체


JSP는 세션의 상태 관리를 위핞 내장객체 session을 제공합니다.

session에 관한 함수도 제법 있는데... 검색해보시기 바랍니다. ㅠㅠ


세션값 설정하기

ex)

sessionsetAttribute("id", "leeMandu")

sessionsetAttribute("pwd", "lee123")


세션에 저장된 값 얻어오기

String id = (String)session.getAttribute("id");

String pwd = (String)session.getAttribute("pwd");


찾은 값은 Object 형이기 때문에 반드시 적절한 형 변환을 해야 합니다.


세션은 이쯤에서하고... 더 많은 정보는 세션 메소드를 활용한 예제들을 찾아 보세요^^