프로그래밍 정리/Web

Cookies

주누다 2013. 7. 13. 00:38
반응형

Cookies

- 쿠키란

-> 서버가 클라이언트에게 보내는 작은 정보의 조각. 

하나의 쿠키에는 어디에서 왔는지 또 언제까지 유효한지등이 표시

-> 원래 NetScape에서 제안했으나, 현재는 인터넷의 한 표준 

=> ex) 응답헤더

Set-Cookie:NAME=VALUE;expires=DATE;path=PATH;domain=DOMAIN;secure

-> 단점

=> 사용자가 쿠키를 받아들이지 않을 수도 있음.

=> 브라우저가 쿠키를 지우너하지 않을 수도 있음.

-> 제한사항

=> 보통 하나의 쿠키에 담을 수 있는 Byte 수는 4kb이며,

하나의 브라우저가 도메인에 대해 저장할 수 있는 쿠키의 개수(보통 20개) 로 한계가 있음.

-> 웹 서버가 쿠키를 반응 헤더로서 웹 브라우저에 전달하면, 웹 브라우저는 쿠키를 메모리에 기억한 후,

차후 연결 시에 요청 헤더로서 그 쿠키 값을 서버에 전달.


- 쿠키의 만료일

-> 다음과 같은 Set-Cookie 헤더가 브라우저에 전송되었다고 할 때

Set-Cookie:NAME=Naver:path=/;expirse=Wednesdays, 09-Nov-99 23:00:00

-> 만료일시가 명시적으로 지정되어 있으며 쿠키는 영속적인 저장매체에 저장

=> IE인 경우 Temporary Internet Files 디렉토리에 개별적 파일로 저장.

-> 만료일시가 명시적으로 기술되어 있지 않으면 쿠키는 브라우저가 사용하는 메모리에 저장되며 브라우저 종료시 사라짐.

-> 클라이언트가 서버에게 보내는 Request Header에는 다음과 같이 포함되어 전송(Cookie : NAME = Naver)



Cookies 메소드

- clone()

-> 쿠키 복사 리턴.

- getComment()

-> 주석이 있으면 주석을, 없으면 null 리턴

- getMaxAge()

-> 쿠키의 최대 유효시간을 초단위로 돌려줌

- getName()

-> 쿠키 이름 리턴

- getPath()

-> 클라이언트가 쿠키를 돌려줄 서버의 경로를 리턴

- getSecure()

-> 브라우저가 쿠키를 보안 프로토콜로 보내야하면 true, 아니면 false 리턴

- getValue()

-> 쿠기 값 리턴

- getVersion()

-> 쿠키가 만족하는 프로토콜의 버전 리턴

- setComment(String purpose)

-> 주석 설정

- setDomain(String pattern)

-> 도메인 한정 패턴 기술. 점으로 시작. 최소의 두개의 점을 포함(.naver.com일시 www.naver.com 유효 / www.mail.naver.com 유효하지 않음.

- setMaxAge(int expiry)

-> 초단위로 쿠키의 최대시간을 기술. 이 값 이전에 브라우저 종료시 하드디스크에 쿠키값을 보관. 

음수 : 브라우저 종료시 쿠키삭제 / 0 : 쿠키를 즉시삭제

- setPath(String uri)

-> 클라이언트가 쿠키를 돌려줄 서버의 경로 설정

- setSecure(boolean flag)

-> 브라우저가 쿠키를 Https나 SSL와 같은 보안 프로토콜로 보내야하는지 확인

- setValue(String newValue)

-> 쿠키가 만들어진 후 쿠키에 새로운 값을 세팅.

- setVersion(int v)

-> 쿠키의 버전 세팅. 새롭게 만들어지는 쿠키는 default 0.


- HttpServletResponse 인터페이스의 메소드

-> addCookie(Coookie cookie)

=> 웹 브라우저에 전송할 쿠. 여러개를 전송할 수 있음.

- HttpServletRequest 인터페이스의 메소드

-> Cookie[] getCookies()

=> 브라우저가 전송한 쿠키들.


반응형

'프로그래밍 정리 > Web' 카테고리의 다른 글

Servlet의 LifeCycle  (0) 2013.07.11
Servlet의 요청 처리 메서드  (0) 2013.07.11
Servlet 요청 방식  (0) 2013.07.11
Servlet  (0) 2013.07.11