본문 바로가기

CS/네트워크

쿠키 (Cookie)

쿠키의 등장 배경

HTTP 프로토콜은 비연결성(Connectionless)무상태(Stateless)를 특성으로 가진다고 알아봤다.

따라서, 서버는 클라이언트가 누구인지 매번 확인해야하는데 이 특성을 보완하기 위해 쿠키가 등장하게 되었다.

쿠키는 무상태 프로토콜에서 상태 기반 정보를 기억할 수 있는 수단이다.

쿠키란

쿠키는 서버가 사용자의 웹 브라우저에 전송하는 작은 데이터 조각이다.

브라우저는 그 데이터 조각을 저장해 놓았다가, 동일한 서버에 재 요청 시 저장된 데이터를 함께 전송한다.

쿠키는 Key와 Value로 이루어져 있으며 만료기간, 도메인, 경로 등의 정보를 가지고 있다.

 

쿠키는 주로 3가지 목적을 위해 사용된다.

  1. 세션 관리 : 서버에 저장해야 할 로그인, 장바구니, 게임 스코어 등의 정보를 관리
  2. 개인화 : 사용자 선호, 테마 등의 세팅
  3. 트래킹 : 사용자 행동을 기록하고 분석

쿠키의 생성과정

  1. 클라이언트가 어떠한 정보를 요청한다.
  2. 서버는 쿠키를 생성한다.
  3. 생성한 쿠키를 요청한 정보와 함께 브라우저로 전송한다.
  4. 클라이언트는 서버로부터 받은 쿠키를 로컬에 저장한다.
  5. 재 접속 시, 쿠키가 있는 경우 서버에 쿠키를 전달한다.
  6. 서버는 쿠키를 이용해서 작업하고, 업데이트할 정보가 있다면 해당 쿠키를 요청한 정보와 함께 전송한다.

쿠키의 종류

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