728x90

※ 쿠키와 세션은 서버와의 정보의 전달을 통해서 어떤 상태를 유지할 때 사용

※ 쿠키와 세션은 사용되는 형태가 비슷하다.

☆ 쿠키는 웹 브라우저(클라이언트) 쪽에 저장

☆ 세션은 웹 서버쪽에 저장

1. 쿠키

◆ 사용자의 시스템에 간단한 정보를 저장해 필요할 때마다 해당정보를 읽어오기 위하여 사용

◆ HTTP 프로토콜은 상태가 없는 즉, 이전에 무엇을 했고, 지금 무엇을 했는지에 대한 정보를 갖고 있지 않는 특성을 가짐

◆ 쿠키는 상태가 없는 프로토콜을 위해 상태를 지속시키기 위한 방법

➡상태를 유지하기 위한 방법

◆ 쿠키를 사용하는 가장 주된 이유 : 간단한 정보를 클라이언트에 저장함으로써 서버의 부하를 크게 줄일 수 있음

◆ 쿠키는 웹 브라우저(클라이언트)의 정보를 웹 브라우저(클라이언트)에 저장

C:\Documents and Settings\사용자이름\Cookies 폴더

◆ 쿠키는 특정 웹 사이트에 접속할 때 생성되는 정보를 담은 임시 파일

➡크기는 4KB 이하로 생성

◆ 쿠키는 사용자의 정보를 저장한다면 사용자의 아이디와 비밀번호와 같은 개인 신상정보들을 다 저장하는가? X. 단지 웹사이트 구분하는 일련번호만 저장

◆ 쿠키의 문제점

★ 쿠키는 웹 브라우저가 거쳐 간 웹 사이트 및 개인의 정보가 기록

➡개인의 사생활을 침해할 소지가 있음

★ 보안문제를 유발하기 때문에 웹 브라우저 자체에 쿠키 거부 기능이 있음

➡쿠키 거부 기능이 브라우저에 설정되어 있으면 쿠키 본래의 목적인 브라우저와의 연결을 지속시키는 기능을 수행할 수 없다. 이것이 쿠키의 가장 치명적인 단점

◆ 쿠키의 동작

★ 쿠키 생성 ➡ 쿠키 저장 ➡ 쿠키 전송

◆ 쿠키의 동작 방식

 

◆ Cookie의 작성절차

가. 먼저 Cookie 를 생성한다.

나. Cookie에 필요한 설정을 한다. 예를 들면, Cookie의 유효시간, Cookie에 대한 설명 등을 적용하고, 도메인, 패스, 보안등을 한다.

다. 웹 브라우저(클라이언트)에 생성된 Cookie 를 전송한다.

◆ 웹 브라우저(클라이언트)에 저장된 Cookie 를 사용 절차

가. 웹 브라우저(클라이언트)의 요청에서 Cookie 를 얻어온다.

나. Cookie 는 이름, 값의 쌍으로 된 배열형태로 리턴 된다. 리턴 된 쿠키의 배열에서 Cookie 이름을 가져온다.

다. Cookie 이름을 통해서 해당 Cookie 에 설정된 값을 추출한다

2. 쿠키의 생성

◆ 생성 및 사용시 : javax.servlet.http 패키지의 Cookie 클래스를 사용

◆ 쿠키는 이름, 값, 유효기간, 도메인, 경로등으로 이루어짐

◆ Cookie cookie = new Cookie(String name, String value);

★ 첫 번째 매개변수 name 은 생성되어지는 쿠키에 대한 이름

★ 두 번째 매개변수 value는 이 쿠키의 값

★ Cookiecookie=newCookie("Job",URLEncoder.encode("학생"));

◆ 쿠키를 생성한 후 response객체의 addCookie()를 사용해서 쿠키를 추가

★ response.addCookie(name);

◆ 쿠키 변경 및 삭제

★ 변경을 위해서는 변경하려는 쿠키의 이름에 해당하는 쿠키 값을 변경

★ 변경하려는 쿠키의 이름이 없을 경우 새롭게 쿠키 생성

3. 쿠키의 사용

◆ 클라이언트의 요청과 함께 전달되어져 온 쿠키를 읽어 올 때

◆ request객체의 getCookies()메소드를 사용

★ Cookie[] cookies = request.getCookies();

◆ 쿠키 도메인 및 경로

★ setDomain () 메소드 : 사용하는 서버에 쿠키를 보내려고 할 때 사용

➡cookie.setDomain(String url);

➡ cookie.setDomain("www.shop.net");

★ getDomain () 메소드 : 설정한 쿠키 도메인을 리턴하려고 할 때 사용

★ setPath () 메소드 : 경로 지정

➡ cookie.setPath(String url)

cookie.setPath("/");

◆ 쿠키의 수명(지속시간)은 cookie객체의 setMaxAge()메소드를 사용

★ cookie.setMaxAge(int expiry);

★ cookie.setMaxAge(60*60);(예:60*60(1시간))

4. 쿠키에서 제공하는 메소드

가. java.lang.String getComment() : 쿠키에 설정된 코멘트 리턴

나. java.lang.String getDomain() : 쿠키 도메인 리턴

다. int getMaxAge() : 쿠키 유효시간 리턴

라. java.lang.String getName() : 쿠키 이름 리턴

마. java.lang.String getPath() : 쿠키 전송 경로 리턴

바. boolean getSecure() : 쿠키에 지정된 논리값 리턴

사. java.lang.String getValue() : 쿠키값 리턴

아. int getVersion() : 쿠키버전 리턴

자. void setComment(java.lang.String purpose) : 쿠키의 사용목적을 설명하는 코멘트 설정

차. void setDomain(java.lang.String pattern) : 도메인 설정

카. void setMaxAge(int expiry) : 쿠키의 유효 시간 설정

타. void setPath(java.lang.String uri) : 쿠키를 전송할 경로 설정

파. void setSecure(boolean flag) : true일때 암호화된 네트워크 커넥션을 통해 쿠키를 전송하도록 설정

하. void setValue(java.lang.String newValue) : 쿠키의 값 설정

거. void setVersion(int v) : 쿠키 버전 설정

 

728x90

'JAVA' 카테고리의 다른 글

정규식 regular expression  (0) 2012.07.29
한글문제  (0) 2012.07.29
JavaScript 키코드  (0) 2012.07.29
JDK 설치  (0) 2012.07.29
JSP 이미지 파일 다운로드 소스  (0) 2012.07.29

+ Recent posts