쿠키의 등장 배경
HTTP 프로토콜은 비연결성(Connectionless)과 무상태(Stateless)를 특성으로 가진다고 알아봤다.
따라서, 서버는 클라이언트가 누구인지 매번 확인해야하는데 이 특성을 보완하기 위해 쿠키가 등장하게 되었다.
쿠키는 무상태 프로토콜에서 상태 기반 정보를 기억할 수 있는 수단이다.
쿠키란
쿠키는 서버가 사용자의 웹 브라우저에 전송하는 작은 데이터 조각이다.
브라우저는 그 데이터 조각을 저장해 놓았다가, 동일한 서버에 재 요청 시 저장된 데이터를 함께 전송한다.
쿠키는 Key와 Value로 이루어져 있으며 만료기간, 도메인, 경로 등의 정보를 가지고 있다.
쿠키는 주로 3가지 목적을 위해 사용된다.
- 세션 관리 : 서버에 저장해야 할 로그인, 장바구니, 게임 스코어 등의 정보를 관리
- 개인화 : 사용자 선호, 테마 등의 세팅
- 트래킹 : 사용자 행동을 기록하고 분석
쿠키의 생성과정
- 클라이언트가 어떠한 정보를 요청한다.
- 서버는 쿠키를 생성한다.
- 생성한 쿠키를 요청한 정보와 함께 브라우저로 전송한다.
- 클라이언트는 서버로부터 받은 쿠키를 로컬에 저장한다.
- 재 접속 시, 쿠키가 있는 경우 서버에 쿠키를 전달한다.
- 서버는 쿠키를 이용해서 작업하고, 업데이트할 정보가 있다면 해당 쿠키를 요청한 정보와 함께 전송한다.
쿠키의 종류
1. Session Cookie
세션 동안에만 저장되며, 브라우저 종료 시 쿠키가 삭제된다.
2. Persistent Cookie
장기간 유지되는 쿠키로, 파일로 저장되어 브라우저 종료와 관계없이 사용한다.
3. Secure Cookie
HTTPS에서 사용하며, 암호화된 쿠키를 의미한다.
4. HTTP Only Cookie
자바스크립트와 같은 비 HTTP API의 접근을 제한하는 쿠키를 의미한다.
쿠키의 장점
사용자의 정보를 저장하고 있기 때문에 방문 시마다 확인해야할 작업(로그인)들을 생략할 수 있다.
또한, 사용자마다 저장하는 정보가 다르기 때문에 사용자에 맞게 웹사이트의 모드(다크 모드)나 언어(한국어, 영어)등을 설정할 수 있다.
마지막으로, 웹사이트를 운영하는 입장에서 사용자가 저장한 쿠키 정보를 이용하여 사용자의 행동과 패턴을 분석하고 트래킹할 수 있다.
쿠키의 단점
쿠키는 사용자 인증, 검색 기록 등의 개인 정보를 저장하고 있기 때문에 사용자의 개인 정보를 침해 당할 소지가 있다.
또한, 사용자 로컬에 저장되기 때문에 쉽게 조작되거나 가로챌 수 있어 보안에 취약하다.
그러므로, 웹사이트는 쿠키를 저장해도 되는지의 여부를 사용자에게 물어봐야 한다.
하나의 쿠키당 최대 4KB까지만 저장할 수 있으며, 한 번에 하나의 정보만 저장할 수 있다는 단점도 있다.
'CS > 네트워크' 카테고리의 다른 글
토큰 기반 인증 (1) | 2022.10.03 |
---|---|
세션 (Session) (0) | 2022.10.03 |
웹 통신의 흐름 (0) | 2022.09.29 |
SSL (0) | 2022.09.28 |
HTTP와 HTTPS (0) | 2022.09.16 |