AR삽질러

Cookie 본문

JAVA/JSP

Cookie

아랑팡팡 2023. 3. 10. 12:42
728x90

1. Cookie

- JSP에서 쿠키(Cookie)는 클라이언트 측에서 데이터를 저장하고 유지하기 위한 방법 중 하나로 쿠키를 사용하면 사용자가 웹 사이트를 방문할 때마다 서버는 브라우저에 데이터를 보내고 브라우저는 그 데이터를 저장되고 그 후 사용자가 같은 웹 사이트를 방문할 때마다 브라우저는 저장된 데이터를 서버에 전송한다.

 

- 쿠키는 일반적으로 사용자의 로그인 정보, 방문한 페이지, 개인 설정 등을 저장하기 위해 사용되며 쿠키는 서버에서 생성되지만 브라우저에서 유지되고 브라우저가 종료되거나 쿠키가 만료되기 전까지 유지된다.

 

2. Cookie의 특징

- 쿠키는 클라이언트 측에서 관리고 서버는 쿠키를 생성하여 클라이언트에게 전달한다.

- 쿠키는 클라이언트 측에서만 유지되기 때문에 다른 클라이언트에서는 쿠키를 읽을 수 없다.

- 쿠키는 브라우저가 종료 후에도 유지되고 만약 쿠키의 수명을 지정하지 않았을 때는 브라우저가 종료될 때까지 유지됩니다.

- 쿠키는 보안에 취약하기 때문에 중요한 정보를 저장하지 않도록 주의해야 합니다.

- 쿠키의 치명적인 단점은 사용자가 웹 브라우저에 쿠키거부기능이 설정되어 있으면 쿠키 본래의 목적인 웹 브라우저와의 연결을 지속시키는 기능을 수행할 수 없게 됩니다.

 

3. Cookie의 구성요소

- 이름(Name): 쿠키를 식별하는 데 사용되는 이름.

- 값(Value): 쿠키에 저장되는 정보. 문자열, 숫자, 객체 등 모든 유형의 데이터를 저장할 수 있다.

- 도메인(Domain): 쿠키가 유효한 도메인을 지정. 이 도메인에 속한 웹 페이지만이 쿠키를 읽을 수 있다.

- 경로(Path): 쿠키가 유효한 경로를 지정. 이 경로에 속한 웹 페이지만이 쿠키를 읽을 수 있다.

- 만료 시간(Expires or Max-Age): 쿠키가 유효한 기간을 지정. 만료 시간이 지나면 브라우저가 쿠키를 삭제합니다.

- 보안(Secure): 보안 연결(HTTPS)을 통해만 쿠키에 접근할 수 있도록 지정

- HttpOnly: JavaScript를 통해 쿠키에 접근할 수 없도록 지정

 

쿠키는 주로 로그인 정보, 사용자 설정, 사용자 추적 등에 사용될수 있지만  중요한 정보를 저장하지 않도록 주의해야 하며, 보안을 위해 SSL/TLS(HTTPS)를 사용하고, 중요한 정보는 서버 측에서만 처리해야 한다.

 

 

4. 쿠키 생성예제

<%@page import="java.net.URLEncoder"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%
	Cookie cookie = new Cookie("name", URLEncoder.encode("AR삽질러", "utf-8"));
	response.addCookie(cookie);
%>    
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>쿠키생성하기</title>
</head>
<body>
<h1>Cookie Example</h1>
<HR>
쿠키의 이름 = <%=cookie.getName() %><br>
쿠키의 값 = <%=cookie.getValue()%>
</body>
</html>

 

5. 쿠키의 값 읽어오기

<%@page import="java.net.URLDecoder"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>쿠키 목록</title>
</head>
<body>
<h1>쿠키 목록</h1>
<HR>
<%
	Cookie[] cookies = request.getCookies();
	if(cookies != null && cookies.length > 0){
		for(int i = 0; i < cookies.length; i++){
%>
<%= cookies[i].getName() %> = 
<%=URLDecoder.decode(cookies[i].getValue(), "utf-8") %><br>
<%
		}
	}else{
%>
<h1>쿠키가 존재하지 않습니다.</h1>
<%} %>
</body>
</html>

 

6. 쿠키의 유효시간

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
    <%
    	Cookie cookie = new Cookie("hour", "1time");
    	cookie.setMaxAge(60); // 60초
    	response.addCookie(cookie);
    %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>쿠키 유효시간</title>
</head>
<body>
<h1>유효시간이 1시간 hour쿠키 생성</h1>
</body>
</html>

 

 

728x90
반응형
LIST