[쿠키 알아보기]
-
물리적으로 기록을 남기지 않는다
-
일상적으로 사용하는 인터넷 서비스에서 연결이 지속된다
-
프로토콜 (표준 인터넷 규약) 을 준수
-
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>
클릭하면 삭제 된 것을 확인 할 수 있다
'개발중 > 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 |