2021. 1. 24. 01:30ㆍComputer Science/네트워크
Cookie
1. 개념
º 서버가 사용자의 웹 브라우저에 전송하는 작은 데이터 조각
º 브라우저는 데이터 조각들을 저장해 놓았다가, 동일한 서버에 재 요청 시 저장된 데이터를 함께 전송
º 무상태(Stateless)인 HTTP 프로토콜에서 상태 정보를 기록
º Set-Cookie : 서버에서 클라이언트로 쿠키 전달(응답)
º Cookie : 클라이언트가 서버에서 받은 쿠키를 저장하고, HTTP 요청시 서버로 전달
2. 사용 목적
º 세션 관리(Session management)
- 서버에서 저장해야할 로그인, 장바구니, 게임 스코어 등의 정보 관리
º 개인화(Personalization)
- 사용자 선호, 테마 등의 세팅
º 트래킹(Tracking)
- 사용자 행동을 기록하고 분석하는 용도
3. 특징
º 쿠키 정보는 항상 서버에 전송
- 네트워크 트래픽 추가 유발
- 최소한의 정보만 사용(ex. 세션 ID, 인증 토큰)
º 쿠키 정보를 클라이언트 측에 저장하려면 웹 스토리지 API(localStorage, sessionStorage)와 IndexedDB를 사용
Set-Cookie
1. 정의
º 서버에서 클라이언트(브라우저)로 쿠키 전달(응답)
º ex. set-cookie: sessionId=abcde1234; expires=Sat, 26-Dec-2020 00:00:00 GMT; path=/; domain=.google.com; Secure
2. 요소
▶ 생명주기
º expires : HTTP 타임스템프로 기록된 쿠키의 최대 생존 시간(수명)
º max-age : 쿠키가 만료될 때 까지의 시간을 초 단위로 계산
(ex. max-age=3600 -> 3600초, 0이나 음수를 지정하면 쿠키 삭제)
º 세션 쿠키 : 만료 날짜를 생략하면 브라우저 종료시 까지만 유지
º 영속 쿠키 : 만료 날짜를 입력하면 해당 날짜까지 유지
▶ 도메인
º 명시: 명시한 문서 기준 도메인 + 서브 도메인 포함
- domain=example.org를 지정해서 쿠키 생성
- example.org 를 포함하여 dev.example.org도 쿠키 접근
º 생략: 현재 문서 기준 도메인만 적용
- example.org 에서 쿠키 생성하고 domain 지정을 생략
- example.org 에서만 접근 가능. dev.example.org는 쿠키 접근 불가
▶ 경로
º 이 경로를 포함한 하위 경로 페이지만 쿠키 접근
º 일반적으로 path=/ 루트로 지정
º ex. path=/home 지정
- /home -> 가능
- /home/level1 -> 가능
- /hello -> 불가능
▶ 보안
º Secure
- Secure를 적용하면 https인 경우에만 전송(쿠키는 http, https를 구분하지 않고 전송)
º HttpOnly
- XSS 공격 방지
- 자바스크립트에서 접근 불가(document.cookie)
- HTTP{ 전송에만 사용
º SameSite
- XSRF 공격 방지
- 요청 도메인과 쿠키에 설정된 도메인이 같은 경우만 쿠키 전송
Reference
- developer.mozilla.org/ko/docs/Web/HTTP/Cookies
- 인프런 김영한 선생님 강좌 "모든 개발자를 위한 HTTP 웹 기본 지식"
'Computer Science > 네트워크' 카테고리의 다른 글
[Network] HTTP, HTTP/2 (0) | 2021.07.20 |
---|---|
[Network] Router, Routing ? (0) | 2021.01.10 |
[Network] HTTP - 헤더 (0) | 2020.09.19 |
[NetWork] imap? POP3? (0) | 2020.06.03 |
TCP UDP 란? (0) | 2020.04.05 |