본문 바로가기

Servlet&JSP

Cookie

# 쿠키란?

쿠키는 웹서버(웹페이지)에서 사용자의 브라우저로 전송하는 데이터이다.

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