카테고리 없음
Jsp cookie
chanwoo23
2025. 4. 8. 16:57
▶ Slide 1: Cookie란?
정의: 클라이언트(브라우저)에 저장되는 작은 데이터 조각 → 사용자의 상태나 정보를 브라우저에 기억시켜 두기 위해 사용
▶ Slide 2: 쿠키는 왜 필요할까?
- 웹은 기본적으로 상태를 기억하지 못하는(stateless) 구조
- 로그인했는지, 장바구니에 뭘 담았는지 서버는 원래 모름
- 그래서 상태를 기억하기 위해 클라이언트에 저장하는 방식이 쿠키
▶ Slide 3: 쿠키 동작 원리
- 서버가 쿠키를 생성해서 응답(Response)에 담아 보냄
- 브라우저는 쿠키를 저장
- 이후 같은 사이트에 요청할 때 자동으로 쿠키를 함께 보냄
요청 예:
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() 반복문 처리 |
세션과 차이 | 쿠키는 클라이언트 / 세션은 서버 저장 |