시스템아 미안해

Cookie 본문

network&OS

Cookie

if else 2022. 6. 7. 14:33

쿠키
: HTTP 쿠키는 서버가 클라이언트에게 준 정보를 브라우저에 저장하고, 클라이언트는 요청을 보낼 때 HTTP 헤더에 정보(이름, 만료기간, 경로정보 등)를 담아서 서버에 전달한다.

▶ 과정
1. 클라이언트의 '첫' HTTP Request
클라이언트가 웹 사이트를 처음 방문하면 서버는 해당 클라이언트를 식별하기 위한 Key-Value(session id) 객체를 만든다.

2. 서버의 HTTP Response
HTTP 헤더의 Set-Cookie 항목에 쿠키를 담아서 전달한다. 클라이언트는 Set-Cookie 헤더에 있는 쿠키를 브라우저에 저장한다.

3. 클라이언트의 HTTP Request + Cookie
클라이언트의 첫 요청 이후, 다음 요청부터는 쿠키가 HTTP 헤더에 포함된다.

▶ 용도( 이 모든게 결국 session을 전달하는 매개체이기 때문 )
1. 세션 관리(Session management)
서버에 저장해야 할 ★로그인, ★장바구니, 게임 스코어 등의 정보 관리

2. 개인화(Personalization)
사용자 선호, 테마 등의 세팅

3. 트래킹(Tracking)
사용자 행동을 기록하고 분석하는 용도

▶ 쿠키의 속성

Domain : HTTP 요청을 보낼 주소의 도메인이 Domain 속성값과 같은 경우에만 쿠키를 보낸다.
Path : HTTP 요청을 보낼 주소의 URL 경로가 Path 속성값과 같은 경우에만 쿠키를 보낸다.

이렇게 쿠키를 서버로 보내서, 서버가 클라이언트를 식별할 수 있도록 한다.

▶ 종류
1. 세션쿠키 : 
만료일을 설정하지 않기 때문에 브라우저를 종료하면 파기된다.

2. 지속쿠키 :
디스크에 저장되어서 만료일까지는 브라우저를 끄거나 재부팅하여도 남아있는다.


▶ 쿠키의 제약조건


- 도메인마다 제한이 있음. 예를 들면 유튜브가 준 쿠키는 유튜브에만 보내지게 될 거임

- 유효기간 있음


- 민감한 정보를 그대로 HTTP헤더에 노출하는 경우 탈취당할 수 있다. 

> 쿠키의 보안 취약점을 보완하기 위해 "세션"을 이용한다.

 

- 브라우저만 유효. 네이티브 앱에는 없음(안드로이드, ios등)
> 토큰을 이용한다!


쿠키와 세션의 차이점 : 저장되는 곳이 서버(세션)냐 브라우저(쿠키)냐에 따라 다른 것!

user의 data 보안 민감도에 따라 저장하는 매개가 나뉜다.  

'network&OS' 카테고리의 다른 글

캐시  (0) 2022.06.13
Session  (0) 2022.06.07
HTTP  (0) 2022.06.07
프로토콜 (TCP/UDP)  (0) 2022.04.05