관리 메뉴

Just Do it

쿠키(Cookie)란? 본문

1. 쿠키란?

-이름과 값의 쌍으로 구성된 작은 정보. 아스키 문자만 가능 (한글은 URL인코딩을 해줘야한다.) 

* domain, path, 아이디, 비밀번호, 유효기간 등이 저장된다. 

-서버에서 생성 후 전송하고 사용자의 브라우저에 저장한다. 유효기간 이후에는 자동으로 삭제 된다.

* 쿠키를 저장하는 공간은 브라우저이다.

- 서버에 요청 시 domain, path(하위 경로 포함)가 일치하는 경우에만 자동으로 전송한다.  

- 쿠키는 클라이언트 식별 기술이다. 

 

2. 쿠키의 생성 (서버가 실행하는 코드)

Cookie cookie = new Coockie("id", "asdf") // 쿠키 생성 (name=id, value=asdf)
cookie.setMaxAge(60*60*24);  // 유효기간 설정(초) 여기서는 24시간으로 설정 
response.addCookie(cookie);  // 응답에 쿠키 추가

 

 

3. 쿠키의 삭제와 변경

3.1 쿠키의 삭제 

Cookie cookie = new Cookie("id", "") // 변경할 쿠키와 같은 이름 쿠키 생성. name이 중요(해당 name을 삭제하는 것이므로) 
cookie.setMaxAge(0);  // 유효기간을 0으로 설정 (삭제) 
response.addCookie(cookie);  // 응답에 쿠키 추가

 

3.2 쿠키의 변경

Cookie cookie = new Cookie("id", "") // 변경할 쿠키와 같은 이름 생성.
cookie.setValue(URLEncoder.encode("홍길동")); // 값 변경 (쿠키에는 아스키 문자만 되므로 URL인코딩 해야한다.) 
cookie.setDomain("www.xxxx.com"); // 도메인 변경
cookie.setPath("/ch2"); // 경로 변경
cookie.setMaxAge(60*60*24*7); // 유효기간 변경 여기서는 일주일로 변경함 
response.addCookie(cookie); // 응답에 쿠키 추가

 

4. 쿠키 읽어 오기 

Cookie[] cookies = request.getCookies(); // 쿠키 읽기 

for(Cookie cookie : coockies) {
	String name = cookie.getName();
    String value = cookie.getValue();
    
    System.out.printf("[cookie]name=%s, value=%s%n", name, value);
}