본문 바로가기
Computer Science/네트워크

[네트워크] HTTP 쿠키(Cookie)

by nahkim 2023. 5. 28.

쿠키

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

특징

  • 웹서버의 사용자의 데이터를 넣을 수 있음
  • 서버를 대신해 웹 브라우저에 저장하고 요청할 때 그 정보를 서버에 보내 사용자를 식별할 수 있음
  • 쿠키가 있을 경우, 페이지 이동 시마다 로그인을 하지 않고, 사용자 정보를 유지할 수 있음

목적(이용)

  1. 세션 관리
    1. 서버에 저장해야할 로그인, 장바구니, 게임 스코어 등의 정보 관리
  2. 개인화
    1. 사용자 선호, 테마 등의 세팅
  3. 트래킹
    1. 사용자 행동을 기록하고 분석하는 용도
  • 쿠키는 주로 웹 서버에 의해 만들어짐
  • 서버가 HTTP 응답 헤더(header)의 Set-Cookie 에 내용을 넣어 전달하면, 브라우저는 이 내용을 자체적으로 브라우저에 저장함
  • 브라우저는 사용자가 쿠키를 생성하도록 한 동일 서버(사이트)에 접속할 때마다 쿠키의 내용을 Cookie 요청 헤더에 넣어서 함께 전달함

쿠키의 한계

  • key:value 형식의 문자열로 이루어지며, 4KB를 넘을 수 없다.
  • 도메인 하나당 저장할 수 있는 쿠키의 개수는 20여개정도 된다. 물론 브라우저에 따라 조금씩 다르다.

단점

  • 보안에 취약하다.
    • 요청시 쿠키의 값을 그대로 보냄
    • 유출 및 조작할 위험이 있음
  • 웹 브라우저마다 쿠키에 대한 지원 형태가 다르기 때문에 브라우저간 공유가 불가능함
  • 쿠키의 사이즈가 커질수록 네트워크에 부하가 심해짐

쿠키와 document.cookie

인증 방식 : Cookie & Session vs JWT