1) 쿠키(Cookie)
- 웹 브라우저가 보관하고 있는 데이터로, 웹 서버에 요청을 보낼 때 쿠키를 헤더에 담아서 전송한다.
2) 쿠키(Cookie)의 장단점
- 클라이언트의 일정 폴더에 정보를 저장하기 때문에 웹 서버의 부하를 줄일 수 있다.
- 정보가 사용자 컴퓨터에 저장되기때문에 보안의 위협을 받을 수 있다.
- 데이터 저장 용량에 한계가 있다. (소용량, 과자 부스러기처럼 작은 값이라 하여 쿠키라고 한다.)
- 일반 사용자가 브라우저 내의 기능인 쿠키 차단을 사용하면 무용지물이 된다.
3) 쿠키 동작 방식
- 쿠키 생성 > 쿠키 저장 > 쿠키 전송
1. 쿠키 생성
- 웹 서버에서 쿠키를 생성하고 쿠키에 응답 데이터를 담아 웹 브라우저에 전송한다.
2. 쿠키 저장
- 웹 브라우저는 응답 데이터를 담고 있는 쿠키를 메모리나 파일로 저장한다.
3. 쿠키 전송
- 웹 브라우저는 쿠키 요청이 있을 때마다 웹 서버에 전송을 한다.
- 웹 서버는 그 쿠키를 사용해서 필요한 작업을 수행할 수 있다.
4) 쿠키 생성 및 사용방식
1. 쿠키를 생성하고 response 객체에 담는다.
// 쿠키 생성
Cookie cookie = new Cookie("쿠키이름","쿠키값");
response.addCookie(cookie);
// 한글 깨질 경우 인코딩하여 값 추가하기
String value = URLEncoder.encode("맛있따.","UTF-8");
Cookie cookie2 = new Cookie("homerunball",value);
2. 쿠키 유무를 확인 후, 쿠키 값을 얻어온다.
String check = request.getHeader("Cookie");
// "Cookie"라는 이름의 과자박스가 있는지 체크
if (check != null) {
Cookie[] cookies = request.getCookies();
for (int i = 0; i < cookies.length; i++) {
out.print(cookies[i].getName() + " : "); // key가 name, 쿠키의 이름
out.print(cookies[i].getValue()); // 쿠키의 값
out.print("<br>");
}
}
3. 쿠키 삭제하기
String check = request.getHeader("Cookie");
if(check != null){
Cookie[] cookies = request.getCookies();
for(Cookie cookie : cookies){
if(cookie.getName().equals("ggobuk")){
out.print(cookie.getName()+" : ");
out.print(cookie.getValue()+"<br>");
cookie.setMaxAge(0);
response.addCookie(cookie);
}
}
}
- setMaxAge(0) : 괄호 안의 숫자는 초 단위를 뜻한다.
- 음수를 입력하면 브라우저 종료시 쿠키 삭제를 뜻한다.(default)
- 쿠키를 수정하거나 삭제하는 경우에는 다시 response.addCookie(쿠키객체)를 해주어야 한다.
5) 세션(session)이란?
- 내장객체로서 브라우저마다 한개씩 존재하고 고유한 SessionID 생성 후 정보를 추출한다.
6) 세션의 장단점
- JSP에서만 접근할 수 있기 때문에 보안성이 좋고 저장 용량의 한계가 거의 없다.
- 서버에 데이터를 저장하므로 서버에 부하가 걸릴 수 있다.
쿠키보다 세션을 쓰는 것이 더 안정적이고 안전하다.
'Back-End > JSP' 카테고리의 다른 글
[JSP] MVC 패턴, Front-Controller 패턴 (0) | 2021.07.28 |
---|---|
[JSP] EL문과 JSTL (0) | 2021.07.26 |
[JSP] 자바빈즈란? (0) | 2021.07.20 |
[JSP] JSON 개요, 라이브러리 다운로드하기 (0) | 2021.07.19 |
[JSP] Ajax와 XMLHttpRequest 객체 (0) | 2021.07.19 |