카테고리 없음

Jsp cookie

chanwoo23 2025. 4. 8. 16:57

▶ Slide 1: Cookie란?

정의: 클라이언트(브라우저)에 저장되는 작은 데이터 조각 → 사용자의 상태나 정보를 브라우저에 기억시켜 두기 위해 사용


▶ Slide 2: 쿠키는 왜 필요할까?

  • 웹은 기본적으로 상태를 기억하지 못하는(stateless) 구조
  • 로그인했는지, 장바구니에 뭘 담았는지 서버는 원래 모름
  • 그래서 상태를 기억하기 위해 클라이언트에 저장하는 방식이 쿠키

▶ Slide 3: 쿠키 동작 원리

  1. 서버가 쿠키를 생성해서 응답(Response)에 담아 보냄
  2. 브라우저는 쿠키를 저장
  3. 이후 같은 사이트에 요청할 때 자동으로 쿠키를 함께 보냄

요청 예:

GET /mypage
Cookie: userid=kim123; theme=dark;

▶ Slide 4: 쿠키 특징

항목설명

저장 위치 클라이언트(브라우저) 내부
저장 방식 key-value 형태
유효 기간 기본은 세션 종료 시까지, maxAge로 변경 가능
용도 자동 로그인, 다크 모드 유지, 방문 기록 등
보안 주의사항 민감 정보 저장 금지 (노출 위험 있음)

▶ Slide 5: 자바에서의 쿠키 사용법

🔹 쿠키 생성

Cookie cookie = new Cookie("username", "kim123");
cookie.setMaxAge(60 * 60); // 1시간
response.addCookie(cookie);
  • new Cookie("키", "값")
  • setMaxAge(초) → 0: 즉시 삭제, -1: 브라우저 종료 시 삭제

🔹 쿠키 가져오기

Cookie[] cookies = request.getCookies();
if (cookies != null) {
    for (Cookie c : cookies) {
        if (c.getName().equals("username")) {
            String value = c.getValue();
        }
    }
}

▶ Slide 6: 쿠키 실전 예제

@WebServlet("/login")
public class LoginServlet extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {

        String id = request.getParameter("id");
        String pw = request.getParameter("pw");

        if (id.equals("kim") && pw.equals("1234")) {
            Cookie cookie = new Cookie("userId", id);
            cookie.setMaxAge(3600); // 1시간 유지
            response.addCookie(cookie);
            response.sendRedirect("main.jsp");
        } else {
            response.sendRedirect("login.jsp?error=1");
        }
    }
}

▶ Slide 7: 쿠키 vs 세션

항목 쿠키(Cookie) 세션(Session)
저장 위치 브라우저(클라이언트) 서버 메모리
저장 주체 클라이언트가 직접 전송 서버가 유지하며 관리
보안 낮음 (노출 위험) 높음 (서버 내 보관)
유지 방식 클라이언트가 쿠키를 매 요청마다 포함 서버가 JSESSIONID로 사용자 식별
만료 설정 쿠키마다 개별 만료시간 설정 기본 30분 (web.xml 등으로 설정 가능)
사용 예 자동 로그인, 테마 설정 로그인 정보, 장바구니, 권한 관리

▶ Slide 8: 쿠키 보안 설정

cookie.setHttpOnly(true); // JS 접근 금지
cookie.setSecure(true);   // HTTPS에서만 전송

주의 사항:

  • 주민번호, 비밀번호 등 민감 정보 저장 금지
  • 쿠키는 조작될 수 있으므로 서버 측 검증 필요

▶ Slide 9: 쿠키 요약 정리

항목 내용
정의 클라이언트에 저장되는 key-value 데이터
용도 자동 로그인, 다크모드 유지, 방문 이력 등
생성 new Cookie() + response.addCookie()
읽기 request.getCookies() 반복문 처리
세션과 차이 쿠키는 클라이언트 / 세션은 서버 저장