본문 바로가기
카테고리 없음

HTTP Cookie

by 수수남매 2023. 11. 5.

HTTP 쿠키는 서버가 HTTP header를 통해 웹브라우저에 전송하는 작은 데이터 조각이다.

Stateless한 HTTP 에서 상태 정보를 기억시켜 웹브라우저 식별을 가능하게 해준다.

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

 

지금은 Modern Apis의 종류인 Web Storage API (localStorage, sessionStorage)와 IndexedDB API를 사용한다.

더보기
sessionStorage
- 세션에 한정해, 즉 브라우저 또는 탭이 닫힐 때까지만 데이터를 저장
- 데이터를 절대 서버로 전송하지 않음
- 저장 공간이 쿠키보다 큼(최대 5MB)
localStorage
- sessionStorage와 같지만 브라우저를 닫아도 데이터가 저장됨
- JavaScript를 사용하거나 브라우저 캐시 또는 로컬 저장 데이터를 지워야 사라짐
- 저장 공간이 셋 중 가장 큼
IndexedDB API
- 많은 양의 구조화된 데이터 저장에 적합함
- RDBMS와 같이 Transaction을 사용하지만 고정컬럼 테이블 대신 index 키를 사용해 저장 및 검색
- 구조화된 복사 알고리즘을 지원하는 객체라면 모두 저장할 수 있음
쿠키의 유효 기간
- session cookie : 유효기간이 별도로 명시되지 않음, 브라우저/탭 종료시 만료
- permanent cookie : Expires=종료시점 또는 Max-age=유효기간
쿠키의 적용 범위
- Domain=... : 서브 도메인까지 포함
- Path=... : 해당 도메인의 특정 경로로 범위 축소
쿠키의 보안
- Secure : 브라우저가 https 프로토콜 상에서만 서버로 전송
- HttpOnly : JavaScript 코드가 쿠키에 접근하는 것을 제한
- SameSite : Cross Site 전송 요청을 제한, Strict(전송 X)>Lax(예외 요청에는 전송)>None(이건 왜 있는 건지..)
Third-party Cookie
- 접속한 도메인과 다른 도메인의 쿠키
- 광고와 트래킹에 주로 사용됨 구글이 사용하는 쿠키 타입
* 좀비쿠키, Evercookies : Web Storage API, Flash 로컬 공유 객체 등의 기술을 써서 재생성

 

 

참고자료

https://developer.mozilla.org/ko/docs/Web/HTTP/Cookies

https://www.daleseo.com/http-cookies/