HTTP Cookie

오다혜·2022년 9월 4일
2
post-thumbnail

🍪 HTTP Cookie

cookie란, 웹 서버브라우저에 보내는 데이터 문자열로, 브라우저가 미래에 동일한 도메인에 request를 보낼 때 서버가 각 사용자를 식별하기 위해 사용된다. 쿠키는 이름=값 형태의 리스트를 가지며 Set-Cookie 또는 Set-Cookie2 같은 HTTP response header에 기술되어 사용자에게 전달된다.

Set-Cookie: value[; expires=date][; domain=domain][; path=path][; secure]

브라우저는 서버에서 전달된 Set-Cookie 또는 Set-Cookie2 헤더에 있는 쿠키 콘텐츠를 브라우저 쿠키 데이터베이스에 저장한다. 이후 사용자가 같은 사이트를 방문하여 서버에 요청을 보내게 될 때 브라우저는 서버가 사용자에게 할당했던(브라우저에 저장되어 있던) 쿠키를 Cookie 요청 헤더에 기술하여 전송한다.

각 브라우저마다 각기 다른 방식으로 쿠키를 저장하며 chrome은 SQLite 파일에 쿠키를 저장하고 있다. 개발자창에서 애플리케이션 탭에 들어가면 브라우저에 저장된 cookie를 확인할 수 있다.

쿠키는 크게 세션 쿠키(session cookie) 와 지속 쿠키(persistent cookie)로 나눌 수 있으며 두 쿠키의 차이점은 파기 시점(유지 기간)이다. Discard 파라미터가 설정되어 있거나, Expires 또는 Max-Age 파라미터가 없으면 세션 쿠키가 된다. 즉, 만료 시점을 지정하면 지속 쿠키고 지정하지 않으면 세션 쿠키다.

파기 시점

사용자가 브라우저를 닫으면 삭제된다.

Discard 파라미터가 설정되어 있거나 파기 시점을 가리키는 Expires 또는 Max-Age 파라미터가 존재하지 않는다.

용례

사용자가 사이트를 탐색할 때 관련된 설정과 선호 사항 등을 저장할 때 사용한다.

파기 시점

세션 쿠키와 다르게 브라우저를 닫아도 삭제되지 않고 더 길게 유지될 수 있다. 디스크에 저장되며 브라우저를 닫거나 컴퓨터를 재시작하더라도 남아있다.

파기 시점을 가리키는 Expires(날짜와 시간) 또는 Max-Age(초) 파라미터가 존재한다.

용례

주기적으로 방문하는 사이트에 대한 설정 정보나 로그인 이름을 유지할 때 사용한다.

profile
프론트엔드에 백엔드 한 스푼 🥄

0개의 댓글