본문 바로가기

개발중/JavaServer Pages (JSP)

Cookies

728x90
반응형

[쿠키 알아보기]

  • 물리적으로 기록을 남기지 않는다

  • 일상적으로 사용하는 인터넷 서비스에서 연결이 지속된다

  • 프로토콜 (표준 인터넷 규약) 을 준수

  • FTP 원격 서버 사이에 파일을 교환하기 위한 TCP/IP

  • HTTP 프로토콜은 비 연결 지향형 통신 프로토콜

  • 새로운 연결을 설정하고 요청에 대한 응답을 한 후 연결을 끊는 것을 반복

  • 서버가 아닌 클라이언트 컴퓨터의 하드디스크에 사용자의 정보를 저장하기 때문에 서버의 동작에 무리를 주지 않으면서 사용자의 정보를 적절하게 사용 할 수 있다

  • 클라이언트의 일정 폴더에 정보를 저장하기 때문에 서버의 부하를 줄일 수 있다는 것이 크키를 사용함으로 써 얻을 수 있는 장점

  • 쿠키에 대한 정보를 필요로 하는 웹 페이지가 웹 서버에 요청될 때 저장해 놓은 쿠키에 대한 정보를 웹 서버에 다시 건네준다

  • 사용자 측에 대한 정보를 보관해두었다가 웹 서버의 요청에 의해 그 정보를 원하는 순간 사용할 수 있게 한다

  • 쿠키는 클라이언트에 저장된 적은 양의 정보 입니다.

  • 크기는 4KB 이하로 제한되어있고 300개까지의 데이처 정보 배열을 저장 할 수 있습니다. 

  • 즉 쿠키를 사용할 수 있는 최대용량은 400KB * 300개 = 1.2MB

  • 작은 정보 형태로 저장되고 오래된 정보는 자동으로 삭제 됩니다.

  • 이미지 정보는 대부분 용량이 크기 때문에 경로만 저장

  • response 객체로 저장

  • request 객체로 가져온다

 

쿠키 객체를 생성한다

쿠키의 속성 값을 생성해 준다

response 객체의 addCookie() 메소드를 호출해서 쿠키를 추가한다

 

Cookie c = new Cookie(“가짜”, 진짜);

response.addCookie(c);

 

- 쿠키 정보가 365일(1년) 간 유효기간을 결정

info.setMaxAge(365*24*60*60);

 

*1년이라는 유효기간을 설정해도 300개의 쿠키가 넘으면 삭제된다

 

 

[ 쿠키를 생성하는 JSP ] 

- 여기서 쿠키를 객체를 생성하면 유효기간도 설정 할 수 있고, 바로 전송 할 수 도 있다.

  즉, 1번과  3,4 번은 다른 생성 방법

<%@ page language="java" contentType="text/html; charset=UTF-8"  pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title> [ 01_setCookies.jsp ] </title>
 
 <style type="text/css">
   * { font-size:24pt; }
 </style>
</head>
<body>
	<h3>쿠키 설정</h3>
	<%
		// 1. Cookies 객체 생성
		Cookie c = new Cookie("id", "pinlsung");
		
		// 2. 유효기간 설정
		c.setMaxAge(365*24*60*60);
		
		// 3.클라이언트에 쿠키 전송
		response.addCookie( new Cookie("pwd", "test1234"));
		
		// 4.쿠키를 생성하여 클라이언트에 전송
		response.addCookie(new Cookie("pwd", "test1234"));
		response.addCookie(new Cookie("age", "20"));
	%>
</body>
</html>

 

 

[ 설정된 모든 쿠키를 얻어와 출력하기 ]

- 엥 이건 내가 설정한 아이디가 아닌뎁 왜 이게 나왔지?

<%@ page language="java" contentType="text/html; charset=UTF-8"  pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title> [ 02_getCookies.jsp ] </title>
 
 <style type="text/css">
   * { font-size:24pt; }
 </style>
</head>
<body>
	<h3> 클라이언트로부터 얻어온 Cookie</h3>
	
	<%
		Cookie[] cookies = request.getCookies();
	
		for( Cookie c : cookies ){
			out.println(c.getName() + " : " + c.getValue() + "<br>" );
		}
	%>
</body>
</html>

 

아 내가 c를 response 해야 하는데 뭘 했던거지 ;; ㅎ

다시 해보니 잘 나온다

C:\Users\Default\AppData\Roaming\Microsoft\Windows 쿠키가 저장되는 곳은 여기다

하지만 윈도우가 업그레이드 하면서 보안 상의 이유로 감춰놨다.

 

[ id 쿠키 삭제하기 ]

쿠키의 유효기간을 만료 시켜버리는 부분 => cookie.setMaxAge(0);

<%@ page language="java" contentType="text/html; charset=UTF-8"  pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title> [ 03_removeCookoes.jsp ] </title>
 
 <style type="text/css">
   * { font-size:24pt; }
 </style>
</head>
<body>
	<%
		Cookie cookie = new Cookie("id", "");
		cookie.setMaxAge(0);
		response.addCookie(cookie);
	%>
	
	<h3> id 쿠키가 삭제 되었습니다. </h3>
	<a href="02_getCookies.jsp">
		쿠기 삭제를 확인 하려면 클릭하세요
	</a> 
</body>
</html>

클릭하면 삭제 된 것을 확인 할 수 있다

 

728x90
반응형

'개발중 > JavaServer Pages (JSP)' 카테고리의 다른 글

Login  (0) 2020.08.14
session 사용법  (0) 2020.08.14
파일 업로드/ 저장  (0) 2020.08.14
session  (0) 2020.08.14
WebServlet 시작 (필기)  (0) 2020.08.14