[WEB] HTTP 쿠키

poburi FE·2020년 2월 20일
0

THL

목록 보기
2/10

HTTP 쿠키는 서버가 사용자의 웹 브라우저에 전송하는 작은 데이터 조각.
브라우저는 그 조각을 저장해 놨다가 동일한 서버에 재요청이 들어오면 저장된 데이터를 함께 전송한다.

쿠키의 3가지 목적

  • 세션관리
    서버에 저장해야할 로그인, 장바구니, 게임 스코어

  • 개인화
    사용자 선호, 테마

  • 트래킹
    사용자 행동을 기록하고 분석

요즘은 modern storage APIs를 사용함.

쿠키 만들기

HTTP 요청을 수신할 때, 서버는 응답과 함께 Set-Cookie헤더를 전송한다.
쿠키는 보통 브라우저에 의해 저장되며, 그 후 쿠키는 같은 서버에 의해 만들어진 요청들의 Cookie HTTP헤더 안에 포함되어 전송된다. (만료된 쿠키는 더이상 보내지지 않음)

추가적으로, 쿠기가 보내지는 것을 특정 도메인 혹은 경로 제한을 설정할 수 있다.

Set-Cookie HTTP 응답 헤더는 서버로부터 사용자 에이전트로 전송된다.
간단한 쿠키는 다음과 같이 설정될 수 있음:

Set-Cookie: <cookie-name>=<cookie-value>

아래 서버 헤더는 클라이언트에게 쿠키를 저장하라고 전달:

HTTP/1.0 200 OK
Content-type: text/html
Set-Cookie: yummy_cookie=choco
Set-Cookie: tasty_cookie=strawberry

[page content]

이제, 서버로 전송되는 모든 요청과 함께 브라우저는 Cookie 헤더를 사용하여
서버로 이전에 저장했던 모든 쿠키들을 회신:

GET /sample_page.html HTTP/1.1
Host: www.example.org
Cookie: yummy_cookie=choco; tasty_cookie=strawberry

세션 쿠키

위에서 생성된 쿠키는 세션 쿠키입니다: 클라이언트가 종료되면 삭제된다.
이유는 Expires 혹은 Max-Age를 명시하지 않았기 때문.
그러나 웹 브라우저는 세션 복구를 할 수 있으며, 이 기능은 브라우저가 결코 닫힌 적이 없던 것처럼 대부분의 세션 쿠키들을 영속적인 것으로 만듭니다.

영속적인 쿠키

클라이언트가 닫힐 때 만료되는 대신에, 영속적인 쿠키는 명시된 날짜(Expires)에 만료되거나 혹은 명시한 기간(Max-Age) 이후에 만료됩니다.

Set-Cookie: id=a3fWa; Expires=Wed, 21 Oct 2015 07:28:00 GMT;
profile
FE 개발자 poburi

0개의 댓글