[작성일: 2023. 04. 05]
쿠키(Cookie)
- 웹 브라우저가 보관하고 있는 데이터
- 웹 서버에 요청을 보낼 때 쿠키를 헤더에 담아서 전송함.
- 웹 브라우저는 쿠키가 삭제되기 전까지 웹 서버에 쿠키를 전송함.
쿠키의 장단점
- 클라이언트의 특정 폴더에 정보를 저장하므로 서버의 부하를 줄임.
- 정보가 사용자 PC에 저장되기 때문에 보안의 위협 존재
- 데이터 저장 용량에 한계가 있음.
- 일반 사용자가 브라우저 내 기능 "쿠키 차단"을 사용하면 쿠키 사용 불가
동작 방식
쿠키 생성
- 웹 서버에 쿠키를 생성하고 쿠키에 응답 데이터를 담아서 웹 브라우저에 전송함.
쿠키 저장
- 웹 브라우저는 응답 데이터에 있는 쿠키를 메모리나 파일에 저장함.
쿠키 전송
- 웹 브라우저는 쿠키 요청이 있을 때마다 웹 서버에 전송함.
- 웹 서버는 쿠키를 활용하여 필요한 작업을 수행함.
쿠키 생성 및 사용 방법
쿠키 생성 후 response 객체에 담기
- 이미 쿠키가 존재하면 값을 수정함.
Cookie cookie = new Cookie("쿠키 이름", "쿠키 값");
response.addCookie(cookie);
// 한글일 때 인코딩이 필요할 경우
String str = URLEncoder.encode("값", "UTF-8");
Cookie cookie = new Cookie("쿠키 이름", str);
response.addCookie(cookie);
쿠키 유무 확인하고 쿠키값 얻어오기
String cookie_check = request.getHeader("Cookie");
if(cookie_check != null) {
Cookie[] cookies = request.getCookie();
for(Cookie c : cookies) {
c.getName();
c.getValue();
}
}
쿠키 삭제
String cookie_check = request.getHeader("Cookie");
if(cookie_check != null) {
Cookie[] cookies = request.getCookie();
for(Cookie c : cookies) {
c.setMaxAge(0);
response.addCookie(c);
}
}
세션(Session)
- 내장 객체로서 브라우저마다 한 개씩 존재하고 고유한 SessionID 생성 후 정보를 추출함.
- JSP에서만 접근이 가능하므로 보안성이 좋고 저장 용량의 한계가 거의 없음.
- 서버에 데이터를 저장하므로 서버에 부하가 걸릴 수 있음.
- 쿠키보다 세션이 더 안정적이고 안전하나, 세션을 저장할 공간이 부족할 경우 쿠키사용 권장
🐣 해당 게시글은 입문 개발자가 요약/정리한 글이므로 틀린 내용이나 오타가 있을 수 있습니다.