반응형
반응형

쿠키란? (Cookie)
쿠키는 서버가 클라이언트 브라우저에 저장하는 정보
  다시말해서 사용자 인터넷 브라우저 (크롬, 엣지, 네이버웨일) 등에
  서버에서 필요한 정보를 저장한 것이다. 
  그래서 클라이언트(사용자)와 연결이 끊어져도 저장된 정보가 유지되어 
  서버와 다시 통신을 할 경우 요청정보의 헤더 안에 저장된 내용을 포함하여
  서버로 전달 할 수 있다. 
  서버는 요청정보안에 포함되어 있는 쿠키 정보를 통해 해당 서비스를 처리해서 응답해준다. 
  요청정보안에 쿠키가 없을 경우에는 서버는 신규접속(처음) 접속으로 인식하여 응답을 처리한다. 
  쿠키는 기본적으로 유효시간이 정의 되어 사용되고 유효시간 지난 정보는 사용되지 않는다.

사용예시
 - 이전에 방문한적이 있는지 확인
 - 다시 방문했을때 몇 번째 방문인지 확인
 - 로그인 여부 확인
 - 쇼핑몰에서 주문시 비로그인 사용자의 선택한 상품 정보등을 유지
 - 서버에서 필요한 별도 정보 확인
 - 자동로그인 및 로그인 유지 확인 등
위의 경우 외에도 어려가지 다양한 용도로 활용될 수 있다. 

쿠키 생성
1. 쿠키를 생성하려면 javax.servlet.http.cookie 객체를 새성한다.

Cookie cookie1 = new Cookie("쿠키이름", "쿠키값");


2. 쿠키 유효시간 설정은 setMaxAge()를 사용하고 초단위 유효시간을 지정한다.

cookie1.setMaxAge(60*60*1); // 1시간 설정

3. 서버 호출 특정 경로 (특정 URL) 요청시에 쿠키를 전송하고 싶을때 setPath() 메소드 사용한다.
    setPath() 경로를 지정하면 지정된 경로와 하위 경로의 요청에만 클라이언트로 쿠키가 전송된다.

cookie1.setPath("/");

4. 쿠키에서 도메인을 설정하여 설정 된 다른 도메인에서도 읽어 드릴 수 있다.
 1) 기본적으로 전송된 서버 즉 일치하는 도메인에서만 읽어 드릴 수 있지만, 서브 도메인에서도 읽어 드릴 수도 있다. 

// 정확히 일치하는 도메인
cookie.setDomain("tnsgud.tistory.com");
// 서브 도메인 허용
cookie.setDomain(".tistory.com");

2) 생성된 쿠키를 클라이언트로 보내기 위해서 HttpServletResponse 객체의 addCookie() 메소드를 사용한다.

// addCookie( ) 메소드의 값에 전송할 cookie 객체를 설정 한다. 
resp.addCookie(cookie);

쿠키 추출
 - 클라이언트로 부터 쿠키를 읽어 드릴려면 HttpServletRequest 객체에 getCookies() 메소드를 사용한다.
1. 쿠키배열에 쿠키 정보을 담는다.

Cookie[] list = req.getCookies();

2. 쿠키이름 추출 할때 Cookie 객체 getName() 메소드를 사용한다. 

for(int i=0; list!=null && i < list.length; i++) {
      out.println(list[i].getName() + "
");
}

3. 쿠기값을 추출 할때 Cookie 객체 getValue() 메소드를 사용한다.

for(int i=0; list!=null && i < list.length; i++) {
      out.println(list[i].getValue() + "
");
}

쿠키(Cookie) 정의와 생성, 추출 내용은 간단히 정리해 봤습니다. 
쿠키에 다양한 값을 넣고 처리 할 수는 있느나 기업 보안상 문제점에서
가장 많은 이슈가 되기도 하는 부분이기도 하다.

 


※ 원하는 것은 모두 이루었다 - 감사합니다

반응형

+ Recent posts