Web Cookie & Session

HGY·2023년 6월 22일

Jsp/Servlet

목록 보기
4/6

Cookie

Client의 정보를 유지하기 위해 사용하는 방법

  1. 저장위치 : ClientPC
  2. 보안 : 상대적 취약
  3. 자원 : Client의 자원을 사용하기 때문에 서버에 영향X
  4. 용량 : 쿠키 하나당 4KB x 300개 = 최대 1.2MB
  5. 저장형식 : text로만 저장 가능
  • 쿠키 생성
// new Cookie("쿠키이름","쿠키 값");
// 쿠키의 값이 한글이라면 인코딩 필요 -> URLEncoder 객체 사용

Cookie cookie = new Cookie("name",URLEncoder.encode("허광영", "UTF-8"));
  • 쿠키 기한 설정 .setMaxAge()
// 2. 쿠키 기한 설정
// 양수 : 초 단위로 해당 시간만큼 쿠키 유지
// 음수 : 브라우저 종료 시 쿠키 제거 (기본값)
// 0 : 제거(만료, 삭제)

cookie.setMaxAge(60*60);
  • 쿠키 전송 .addCookie('쿠키명)
// 쿠키는 응답할 때 전송되므로, response객체 사용

response.addCookie(cookie);
  • 쿠키 조회
// 서버가 요청하지 않아도 쿠키는 request객체에 담겨서 옴
// 배열 형태로 반환한다.

Cookie[] cookies = request.getCookies();

// URLDecoder.decode("디코딩할 값", "디코딩 방식")
// 쿠키는 기본 디코딩을 지원하지 않기 때문에 조회 시 디코딩이 필요하다.

String value = URLDecoder.decode(cookies['인덱스번호'].getValue(), "UTF-8");

Session

Client의 정보를 유지하기 위해 사용하는 방법

  1. 저장위치 : ServerPC
  2. 보안 : 상대적 강력
  3. 자원 : Server자원 사용하기 때문에 남발x
  4. 용량 : Server가 허용하는 만큼 가능
  5. 저장형식 : Object -> 모든 객체를 담을 수 있다
  • 세션 객체 생성
HttpSession session = request.getSession();
  • 세션 생성
// session의 값은 Object -> 모든 객체 담을 수 있다!!!
// session의 이름이 중복될 경우 덮어쓰기 된다

session.setAttribute("name", "허광영");
  • 세션 기한 설정
// 단위 : 초

session.setMaxInactiveInterval(60*60);
  • 세션 조회
// session도 내장 객체이기 때문에 jsp에서 객체생성x

String name = (String)session.getAttribute("name");
String age = (String)session.getAttribute("age");
  • 세션 삭제
// 특정 Session 삭제
session.removeAttribute("age");

// 모든 Session 종료
session.invalidate();
profile
바보 개발자 지망생

0개의 댓글