WebServer/JSP&Servlet

[JSP&Servlet] 쿠키 관리 (Cookie)

gangintheremark 2023. 8. 17. 10:52
728x90

쿠키(Cookie)

쿠키(Cookie)🍪 사용자의 상태정보를 클라이언트에서 관리하는 메커니즘이다. 클라이언트에 정보가 저장되기 때문에 서버 부하가 크지 않으나 누구나 클라이언트에 접근할 수 있기 때문에 보안에 매우 취약하다. 쿠키 정보는 브라우저의 메모리 또는 OS 파일로 저장할 수 있다. 기본 저장은 브라우저 메모리기 때문에 브라우저를 종료하면 자동으로 쿠키 정보도 제거된다.

  • Cookie API 이용
  • 클라이언트(브라우저orPC)에 데이터 저장
  • 저장되는 데이터는 문자열만 저장 가능
  • 도메인(웹사이트)당 300개 까지만 저장 가능
  • 클라이언트가 쿠키 사용 여부를 결정
  • time-out 지정 가능
  • 사용자 인증이나 장바구니 기능에 주로 사용

출처) https://raonctf.com/essential/study/web/cookie_connection

Cookie API

메서드 설명
Cookie(name, value) 쿠키 생성시 사용되는 생성자
response.addCookie(cookie) 생성된 쿠키를 응답처리
request.getCookies() 클라이언트로부터 쿠키 정보를 배열로 리턴
setMaxAge(second) 쿠키 만료시간 설정
getMaxAge() 쿠키 만료시간을 얻음
getName() 쿠키 이름을 얻음(key값)
getValue() 쿠키 값을 얻음(value값)
setValue() 쿠키 값 설정
length 쿠키 개수 리턴

 

💡 setMaxAge(값)

  • 양수 : 지정된 양수만큼 쿠키 정보 유지
  • 음수 : 브라우저와 동일한 lifecycle
  • 0 : 쿠키정보 삭제

 

쿠키 생성

사용자 정보를 저장하기 위해 Cookie 클래스를 객체 생성한다

Cookie c = new Cookie(String key, String value);

 

클라이언트에 전달

Cookie c = new Cookie(String key, String value);

c.setMaxAge(-1);
response.addCookie(c);

 

쿠키 참조

서버 요청 시 전달된 쿠키 정보를 HttpServletRequest 사용하여 참조

Cookie[] cookies = request.getCookies();

for(Cookie c : x) {
    key = c.getName(); // key 얻기
    value = c.getvalue(); // value 얻기
}

 

🍪 쿠키 이용 정리
1. 쿠키 생성하는 서블릿A 요청
2. 쿠키생성
3. 쿠키 응답처리
4. 브라우저에 저장
5. 쿠키를 사용할 서블릿B 요청
6. 쿠키얻기
 

[JSP&Servlet] 쿠키를 이용한 간단한 로그인&로그아웃

쿠키(Cookie)란? 클라이언트가 서버에 정보를 요청할 때 생성되는 상태정보 클라이언트에 데이터 저장 LoginServlet.java package com.servlet; @WebServlet("/login") public class LoginServlet extends HttpServlet { protected voi

gangintheremark.tistory.com

 

728x90