세션과 쿠키

TPark·2020년 4월 20일
0

백엔드

목록 보기
2/8

http protocol의 특징

  • 클라이언트가 서버에 요청
  • 서버는 요청에 대한 처리 후 클라이언트에 응답
  • 응답 후 연결해제 : stateless
    • 지속적인 연결로 인한 자원낭비를 방지하기 위해 연결 해제
    • 그러나 로그인 정보 등 연결을 유지해야 하는 경우는?
    • 클라이언트 단위로 상태정보를 유지해야하는 경우 쿠키나 세션 사용
세션쿠키
타입인터페이스클래스
저장 위치서버에 object로 저장클라이언트 컴퓨터에 file로 저장
저장 형식object는 모두 사용가능 (dto, list 등)String
사용 예시로그인, 장바구니 등최근 본 목록, 아이디 저장, 팝업에 오늘은 그만열기 등

공통점:

  • 전역에 저장하기 때문에 모든 jsp에서 활용 가능
  • Map형식을 사용하기 때문에 중복 key는 허용되지 않음

HttpSession의 주요 기능

생성

// 세션이 없을 경우 새로운 세션 생성 (일반적)
HttpSession session = request.getSession()
// 세션이 없을 경우 null 리턴
HttpSession session = request.getSession(false);    

값 저장

session.setAttribute(String key, Object value);

값 가져오기

Object obj = session.getAttribute(key);

값 제거

session.removeAttribute(key);
session.invalidate(); // 초기화

생성시간

long ct = session.getCreationTime();

마지막 접근시간

long lt = session.getLastAccessedTime();

Cookie의 주요기능

생성

Cookie cookie = new Cookie(String name, String value);

값 변경 / 얻기

cookie.setValue(String value);
cookie.getValue();

사용 도메인 지정 / 얻기

cookie.setDomain(String domain);
cookie.getDomain();

값 범위 지정 / 얻기

cookie.setPath(String path);
cookie.getPath();

유효기간 지정 / 얻기

cookie.setMaxAge(int exp);
cookie.getMaxAge();
cookie.setMaxAge(0); // 쿠키 삭제

쿠키 클라이언트에 저장 / 얻기

response.addCookie(cookie);
Cookie[] cookies = request.getCookies();

0개의 댓글