http protocol은 request처리 후 연결 해제(stateless)하므로 로그인 같이 연결 상태 유지해야하는 경우 문제 발생.
client 단위 상태 정보 유지를 위해 Cookie와 Session 사용
Clinet 컴퓨터에 file로 저장
이름, 값, 유효기간, 도메인, 경로
request -> WAS가 Cookie 생성 -> HTTP Header에 Cookie 넣어 응답 -> Browser가 PC에 Cookie 저장 및 전송
// 생성
Cookie cookie = new Cookie(String name, String value);
// 값 설정
cookie.setValue(String value);
String value = cookie.getValue();
// 도메인 설정
cookie.setDomain(String domain);
String domain = cookie.getDomain();
// 유효기간 설정
cookie.setMaxAge(int expiry);
int expiry = cookie.getMaxAge();
response.addCookie(cookie);
Cookie[] cookies = request.getCookies();
웹 서버 접속한 상태 저장
server의 memeory에 Object로 저장
request -> Cookie에 session id 있는지 확인 후 없으면 생성하여 client에게 전달
// 생성
HttpSession session = request.getSession();
session.getAttribute(String name, Object value);
Object obj = session.getAttribute(String name);
session.removeAttribute(String name);
session.invalidate();