# 쿠키란?
쿠키는 웹서버(웹페이지)에서 사용자의 브라우저로 전송하는 데이터이다.
HTTP 프로토콜은 Connectless & Stateless 방식으로 작동한다. 즉 비연결지향형 프로토콜로 사용자가 웹서버에 요청을 보내면 이 요청을 처리한 뒤 연결을 끊는다.
# 쿠키 사용 이유
HTTP 프로토콜은 하나의 요청당 하나의 연결을 맺었다 끊음으로 불특정 다수를 대상으로 서비스하기 좋으나 사용자가 접속한 연결이 바로 끊어지기 때문에 이전 정보를 알 수가 없는 단점이 있다.
이걸 해결하기 위해 나온게 쿠키이다. 쿠키는 이전에 방문했던 사용자인지 아닌지를 알 수가 없기 때문에 이를 하드디스크나 메모리에 기록하여 이전에 접속한 정보를 유지한다.
# 쿠키를 주고 받는 위치
브라우저가 웹서버로 요청을 보낼 때 HTTP요청 헤더에 Cookie: name=value을 포함해서 보낸다
웹서버에서 브라우저로 응답을 보낼 때에 HTTP 응답 헤더에 Set-Cookie : name=value; path=/경로; expires 날짜 형태로 포함해서 보낸다
# 쿠키의 종류
- 세션 쿠키
: 쿠키에 만료일이 포함되어있지 않는 쿠키를 세션쿠키라 한다. 세션 쿠키는 메모리에 저장되며 브라우저 종료시 삭제되는 쿠키이다.
- 영구 쿠키
: 쿠키에 만료일이 포함되어서 그 만료일까지만 유지되는 쿠키를 영구 쿠키라 한다. 영구 쿠키는 사용자의 하드디스크에 저장되며 만료일까지 유지된다. 만료일이 지나게 되면 하드디스크에서 삭제된다.
# Servlet 쿠키 추가
# Servlet 쿠키 삭제
setMaxAge(0)으로 하게 되면 쿠키가 삭제된다. 0으로 설정만 하면 끝나는게 아니라 브라우저에도 전송해주어야한다.
쿠키는 하나만 존재해야하기 때문에 0으로 설정후 쿠키를 다시 추가해주면 사용자의 브라우저에서 쿠키 정보가 삭제된다.
'Servlet&JSP' 카테고리의 다른 글
ServletOutputStream (0) | 2016.04.14 |
---|---|
Scope (0) | 2016.04.14 |