시스템아 미안해
Cookie 본문
쿠키
: 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 |