이름과 값의 쌍으로 구성된 작은 정보. 아스키 문자만 가능.
한글은 URL인코딩 필요.
서버에서 생성 후 전송, 브라우저에 저장. 유효기간 이후 자동 삭제.
서버에 요청시 domain, path가 일치하는 경우에만 자동 전송.
클라이언트 식별기술.
//쿠키 생성후 응답에 추가
Cookie cookie = new Cookie("id", "asdf"); //생성
cookie.setMaxAge(60*60*24); //유효기간
response.addCookie(cookie); //응답에추가
//쿠키 삭제
Cookie cookie = new Cookie("id", "");
cookie.setMaxAge(0); //유효기간0으로해서 삭제
response.addCookie(cookie);
//쿠키 변경
Cookie cookie = new Cookie("id","");
cookie.setValue(URLEncoder.encode("서현우")); //값 변경
cookie.setDomain("www.fastcampus.co.kr"); //도메인 변경
cookie.setPath("/ch2"); //경로 변경
cookie.setMaxAge(60*60*24*7); //유효기간 변경
response.addCookie(cookie); //응답에 쿠키 추가
//쿠키 읽어오기
Cookie[] cookies = request.getCookie(); //쿠키 읽기
for(Cookie cookie : cookies){
String name = cookie.getName();
String value = cookie.getValue();
}
서로 관련된 요청들을 하나로 묶은 것 - 쿠키를 이용.
browser마다 개별 저장소(session객체)를 서버에서 제공.
HttpSession session = request.getSession(); //세션을 얻음
session.setAttribute("id", "asdf");
//메서드
getId() //세션ID를 반환
getLastAccessedTime() //제일 마지막 요청 시간
isNew() //새로 생성된 세션인지
invalidate() //세션 즉시종료
setMaxInactiveInterval(int interval) //예약종료
getMaxInactiveInterval() //예약종료 시간 반환
//세선 종료
//1. 수동종료
HttpSession session = request.getSession();
session.invalidate(); //즉시종료
session.setMaxInactiveInterval(30*60); //예약종료
//2. 자동종료 - web.xml
<session-config>
<session-timeout>30</session-timeout>
</session-config>