쿠키란
쿠키는 웹 브라우저가 보관하는 데이터이다. 웹 브라우저는 웹 서버에 요청을 보낼 때 쿠키를 함께 전송하며,
웹 서버는 웹 브라우저가 전송한 쿠키를 사용해서 필요한 데이터를 읽을 수 있다.
쿠키는 웹 서버와 웹 브라우저 양쪽에서 생상헐 수 있는데, JSP에서 생성하는 쿠키는 웹 서버에서 생성하는 쿠키이다.
쿠키 동작 방식
(1) 쿠키 생성 단계
쿠키를 사용하려면 먼저 쿠키를 생성해야 한다. JSP 프로그래밍에서 쿠키는 웹 서버 측에서 생성한다.
생성한 쿠키를 응답 데이터의 헤더에 저장해서 웹 브라우저에 전송한다.
(2) 쿠키 저장 단계
웹 브라우저는 응답 데이터에 포함된 쿠키를 쿠키 저장소에 보관한다.
쿠키의 종류에 따라 메모리나 파일에 저장한다.
(3) 쿠키 전송 단계
웹 브라우저는 저장한 쿠키를 요청이 있을 때마다 웹 서버에 전송한다.
웹 서버는 웹 브라우저가 전송한 쿠키를 사용해서 필요한 작업을 수행한다.
웹 브라우저에 쿠키가 저장되면, 웹 브라우저는 쿠키가 삭제되기 전까지 웹 서버에 쿠키를 전송한다.
따라서 웹 어플리케이션을 사용하는 동안 지속적으로 유지해야 하는 정보는 쿠키를 사용해서 저장하면 된다.
장점
- 클라이언트에 저장하기 때문에 서버에 요청 시 빠르다.
단점
- 쿠키에 대한 정보를 매 헤더(Http Header)에 추가하여 보내기 때문에 상당한 트랙픽을 발생시킵니다.
- 결제정보등을 쿠키에 저장하였을때 쿠키가 유출되면 보안에 대한 문제점도 발생할 수 있습니다.
- 저장 용량에 제한이 있다.
1. 쿠키의 구성
- 이름 : 각각의 쿠키를 구성하는 데 사용되는 이름
- 값 : 쿠키의 이름과 관련된 값
- 유효시간 : 쿠키의 유지 시간
- 도메인 : 쿠키를 전송할 도메인
- 경로 : 쿠키를 전송할 요청 경로
하나의 웹 브라우저는 여러 개의 쿠키를 가질 수 있는데, 각 쿠키를 구분할 때 이름을 사용한다.
각 쿠키는 값을 가지고 서버는 이 값을 이용해서 원하는 작업을 한다.
유효시간을 사용하면 웹 브라우저가 쿠키를 얼마 동안 보관할지를 지정할 수 있다.
예를 들어 쿠키 유효 시간을 1시간으로 지정하면 1시간 뒤에 웹 브라우저가 해당 쿠키를 삭제하고
별도의 유효 시간을 지정하지 않으면 웹 브라우저를 종료할 때 쿠키를 함께 삭제한다.
유효 시간에 따라 브라우저를 종료해도 계속 남아 있을 수 있다.
또한, 지정한 도메인이나 경로로만 쿠키를 전송하도록 제한할 수 있다.
2. 쿠키의 종류
- Session Cookie : 보통 만료시간(Expire date) 설정하고 메모리에만 저장되며 브라우저 종료시 쿠키를 삭제
- Persistent Cookie : 장기간 유지되는 쿠키(예를 들어 Max-Age 1년), 파일로 저장되어 브라우저 종료와 관계없이 사용
- Secure Cookie : HTTPS에서만 사용, 쿠키 정보가 암호화 되어 전송
- Third-Party Cookie : 방문한 도메인과 다른 도메인의 쿠키 보통 광고 베너 등을 관리할 때 유입 경로를 추적하기 위해 사용
3. 쿠키 생성, 변경, 삭제 등
쿠키 사용 방법은 책 참고!
4. 쿠키를 사용한 로그인 상태 유지
쿠키를 이용하면 다음과 같은 방법으로 로그인 상태를 유지할 수 있다.
(1) 로그인에 성공하면 특정 이름을 갖는 쿠키를 생성한다.
(2) 해당 쿠키가 존재하면 로그인한 상태라고 판단한다.
(3) 로그아웃하면 해당 쿠키를 삭제한다.
예를 들어, 로그인에 성공하면 “AUTH”라는 쿠키를 생성하고,
“AUTH” 쿠키가 존재하면 로그인한 상태라고 인식하는 것이다.