쿠키(Cookie)
웹 브라우저가 보관하고 있는 데이터(로컬에)
웹 서버에 요청을 보낼 때 쿠키를 헤더에 담아 전송
웹 브라우저는 쿠키가 삭제되기 전까지 웹 서버에 쿠키 전송
장단점
- 클라이언트의 특정 폴더에 정보를 저장하므로 서버 부하 낮음
- 데이터 저장 용량의 한계
- 일반 사용자가 브라우저 설정에서 쿠키 차단을 사용하면 사용 불가
- 정보가 사용자 PC에 저장되므로 보안 위협 존재
- 동작 방식
1) 쿠키 생성 : 웹 서버가 쿠키를 생성하고 response에 쿠키를 담아서
웹 브라우저에 전송
2) 쿠키 저장 : 웹 브라우저는 응답에 있는 쿠키를
메모리 또는 디스크에 저장
3) 쿠키 전송 : 웹 브라우저는 쿠키 요청이 올 때마다
웹 서버에 전송
☆ Code
★ cookie
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Create Cookie</title>
</head>
<%
Cookie cookie = new Cookie("id", "Watermelon");
response.addCookie(cookie);
cookie = new Cookie("id2", "Strawberry");
response.addCookie(cookie);
%>
<body>
<h1>Cookie Creation</h1>
<hr>
<a href="10_get_cookie.jsp">Send Cookie</a>
</body>
</html>
★ get_cookie
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Display & Modify Cookie</title>
</head>
<%
String id = "";
String cookie_check = request.getHeader("Cookie");
System.out.println("Cookie Check Result : " + cookie_check);
if(cookie_check != null){
System.out.println("[GetCookie] Cookie(s) found");
Cookie[] cookies = request.getCookies();
for(Cookie cookie : cookies){
System.out.println("[GetCookie] " + cookie.getName() + ":" + cookie.getValue());
if(cookie.getName().equals("id2")){
id = cookie.getValue();
break;
}
}
}
%>
<body>
<h1>Get Cookie</h1>
<hr>
<h1>User ID : <%=id%></h1>
<a href="10_delete_cookie.jsp">Delete Cookie</a>
</body>
</html>
★ delete_cookie
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Delete Cookie</title>
</head>
<%
String cookie_check = request.getHeader("Cookie");
System.out.println("Cookie Check Result : " + cookie_check);
if(cookie_check != null){
System.out.println("[GetCookie] Cookie(s) found");
Cookie[] cookies = request.getCookies();
for(Cookie cookie : cookies){
cookie.setMaxAge(0);
response.addCookie(cookie);
}
}
%>
<body>
<h1>Delete All Cookies OK</h1>
</body>
</html>
'JSP' 카테고리의 다른 글
JSP ajax (0) | 2024.11.30 |
---|---|
JSP 세션 (1) | 2024.11.30 |
JSP forward 태그 (0) | 2024.11.28 |
JSP 액션태그 (0) | 2024.11.27 |
JSP 스크립트 태그 (0) | 2024.11.22 |