Enjoy Programming

HTTP COOKIE 본문

카테고리 없음

HTTP COOKIE

LEETAEEON 2021. 5. 12. 01:18

우선 mdn을 살펴보자

HTTP쿠키(웹쿠키, 브라우저 쿠키)는 서버가 사용자의 웹브라우저에 전송하는 작은 데이터 조각.

브라우저는 그 데이터 조각들을 저장해 놓았다가 동일한 서버에 재 요청시 저장된 데이터를 함께 전송한다.

쿠키는 두 요청이 동일한 브라우저에서 들어왔는지 아닌지를 판단할 때 주로 사용된다.

이를 이용하면 사용자의 로그인 상태를 유지 할 수 있다.

기본적으로 HTTP는 stateless! 상태가 없다. 웹사이트는 유저와 항상 연결되어 있지 않다.

유저가 웹사이트에 접속할때 request가 되고 그 순간 연결이 된다.

그리고 내요청에 대한 응답을 받는 순간 연결이 끊긴다. 예를 들어 페이지를 뿌려주고 끝이 난다는 것.

문제는 유저에 대해 기억을 해야할 필요가 있다는 것. 웹사이트를 사용하는 유저의 지역이라던지

유저의 아이디와 패스워드, 또는 유저가 웹사이트에 자주 사용하는 정보라던지 아무튼

이런 정보를 기억해야하기 때문에 쿠키가 생겼고 필요하다.

 

자 다시 mdn으로 돌아와 쿠키는 주로 세가지 목적을 가진다.

세션 관리 (Session management)

 - 서버에 저장해야 할 로그인, 장바구니 같은 정보의 관리

개인화 (Personalization)

 - 사용자 선호, 테마 등의 셋팅

트래킹 (Tracking)

 - 사용자의 행동을 기록하고 분석하는 용도

 

과거에는 클라이언트 측에 정보를 저장할 때 쿠키를 주로 사용했다. 쿠키를 사용하는게 데이터를 클라이언트 측에 저장 할 수 있는 유일한

방법 이었기 때문이다. 지금은 modern storage APIs를 사용해 정보를 저장하는 것을 권장한다.

모든 요청마다 쿠키가 함께 전송이 되기 때문에, (특히 mobile data connections) 성능이 떨어지는 원인이 될 수 있다.

정보를 클라이언트 측에 저장하려면 Modern APIs의 종류인 웹스토리지 API(localStorage & sessionStorage)와 IndexedDB를 사용하면 된다.

 

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

 

HTTP 쿠키 - HTTP | MDN

HTTP 쿠키(웹 쿠키, 브라우저 쿠키)는 서버가 사용자의 웹 브라우저에 전송하는 작은 데이터 조각입니다. 브라우저는 그 데이터 조각들을 저장해 놓았다가, 동일한 서버에 재 요청 시 저장된 데

developer.mozilla.org

음 쿠키를 만드는 방법까지는 다루지 않겠다. 필자는 차후 이것도 다루긴 하겠지만 다른 공부를 먼저 해야하기 때문에 ㅠㅠ

쿠키에 대해서 더 알아보자. 노마드코더의 유튜브에서 발췌한다.

www.youtube.com/watch?v=1emZgLiGE4s

쉽게 설명해줬다.

인증 쿠키로 예를 들었다.

유저는 username과  password가 있고  그리고 데이터베이스와 서버가 있다.

유저가 이름과 비밀번호를 입력하면 db는 영수증같은걸 만든다. 이건 이태언 당신이고 비밀번호는 이건데 이걸 사용하면 인증이 된다라고~ 그리고 그 영수증을 다시 유저에게 전송한다. 이 과정은 브라우저상에서 이루어지고

브라우저는 모든 쿠키를 가져다 유저의 하드디스크에 저장한다. 

유저가 웹사이트에 request를 할때마다 브라우저는 웹사이트에서 모은 모든 쿠키를 보낸다.

그로인해 그 쿠키가 db와 server에 전송이되면 확인하고 인증이 되는 것이다 그리고 확인 되면 response해준다.

그런데 한번의 요청은 한번의 response로 끝이 난다. 다른 요청을 할때는 다른 쿠키를 또 보내야 한다.(HTTP는 stateless이기 때문에)

그런데.....아무래도 여기서의 영수증은 session을 의미하는 듯 싶다, 결국 session ID도 쿠키를 사용해서 저장하니까..

 

아무튼! 쿠키는 정보를 기억하기 위함이다. 

 

이 쿠키에는 규칙이 있다.

 

첫번째 Domain Scoped  - 쿠키는 1개의 도메인에 한정 된다.

예를 들어 페이스북에서 생성된 쿠키는 다른 웹사이트로 보낼 수 없다.

페이스북에서 생성된 쿠키는 페이스북에서만 사용가능.!

 

두번째 쿠키는 자동으로 보내진다.

서버는 원하는 만큼 쿠키를 보낼 수 있고 브라우저는 자동으로 저장을 한다.

 

세번째 쿠키는 자동으로 저장된다.

 

정리하자

쿠키

- 쿠키는 클라이언트에 저장되는 키와 값이 들어있는 데이터파일

- 이름, 값의 만료날짜, 경로 정보가 들어있다.

- 쿠키는 일정 시간동안 데이터를 저장할 수 있어서 로그인 상태를 유지한다.

- 클라이언트의 상태 정보를 유저의 하드 디스크에 저장하였다가 필요할 때 참조, 재사용한다

 

원리

- 클라이언트가 브라우저로 웹페이지 접속

- 요청한 웹페이지를 전송받으면서 쿠키를 하드에 저장

- 재 방문시 웹페이지 요청과 함께 쿠키값도 전송

- 지속적으로 로그인 정보를 가지고 있는 것처럼 사용

 

ex - 흔하게 접하는 아이디와 비밀번호를 저장하시겠습니까? 요게 바로 쿠키로 저장하겠냐는 뜻이다

- 쇼핑몰의 장바구니 기능