Cookie & Session

2ㅣ2ㅣ·2024년 4월 30일

Web

목록 보기
4/5
post-thumbnail

웹의 근본은 정보의 교환에 있다(벌써 3번째 반복중). 예를 들어, 로그인 시에 사용자 정보를 서버에 전송하고, 서버로부터 인증을 위한 토큰이나 쿠키를 받아 로그인 상태가 유지된다. 우리가 자주 방문하는 웹사이트에서 매번 로그인을 요구하지 않는 것은 이러한 인증 정보가 저장되기 때문이다. 이제 쿠키와 세션을 통해 이러한 과정이 어떻게 작동하는지 살펴보자.

Http

HTTP는 본질적으로 stateless 프로토콜이다. 이는 REST API를 통해 어떤 요청을 하는지는 알지만, 누가 그 요청을 보냈는지는 기본적으로 인지하지 못한다는 것을 의미한다.

웹 브라우저는 쿠키를 HTTP 헤더에 포함시켜 서버에 전송하므로, 서버는 이 정보를 통해 사용자를 식별하고 이전 상태를 유지할 수 있다.

WS -> WB


서버는 응답 시 HTTP 응답 헤더에 Set-Cookie를 포함하여 쿠키 정보를 브라우저에 보낸다. 이를 통해 브라우저는 사용자의 상태 정보를 로컬에 저장할 수 있다.

WB -> WS


브라우저는 서버로의 요청 시 HTTP 요청 헤더에 Cookie를 포함하여 이전에 저장된 쿠키 정보를 서버에 전송한다.

Session

session은 웹 브라우저 대신 웹 서버에 저장하는 것이다. 이때, 브라우저 헤더(쿠키)에 요청자 대신 요청자 정보인 세션아이디를 담아 웹 서버로 요청을 보내고 웹 서버는 db에서 해당 세션 아이디와 매칭되는 세션값을 반환한다.

이로써 Http는 상태 정보를 유지하며 stateful하게 요청과 반환을 한다.
다만, 웹 브라우저가 모든 쿠키를 서버에 전송하는 것은 아니다.

쿠키에는 항상 도메인이 연결되어 있어서, 이 도메인이 쿠키를 생성한 웹사이트의 도메인과 일치하는지 여부에 따라 쿠키의 유형이 결정된다.

  • 사이트 도메인(site domain): 사용자가 웹 브라우저를 통해 접속한 웹사이트의 주소를 말한다. 예를 들어, 사용자가 'example.com'에 접속했다면, 사이트 도메인은 'example.com'이다.

  • 쿠키 도메인(cookie domain): 쿠키가 유효한 범위를 나타내며, 이 도메인이나 하위 도메인에서 쿠키가 전송될 수 있다. 쿠키 도메인이 'example.com'이라면, 'example.com'과 모든 하위 도메인에서 쿠키가 활용될 수 있다.

이 두 가지는 쿠키가 어디서 생성되고 사용될 수 있는지를 결정하는 데 중요한 역할을 한다.

  • 퍼스트 파티 쿠키(First-party cookies): 사이트 도메인과 쿠키 도메인이 같을 때 생성되는 쿠키로, 사용자가 실제로 방문한 사이트에서 직접 설정된다. 예를 들어, 사용자가 'example.com'을 방문했을 때, 'example.com'에서 생성한 쿠키는 퍼스트 파티 쿠키다. 이 쿠키들은 주로 사이트의 기능성을 높이는 데 사용된다.

  • 서드 파티 쿠키(Third-party cookies): 사이트 도메인과 쿠키 도메인이 다른 경우에 생성되는 쿠키다. 이는 주로 광고 네트워크와 같은 다른 도메인에서 설정된다. 예를 들어, 'example.com'에 방문했지만, 쿠키가 'adnetwork.com'으로부터 설정된다면, 이는 서드 파티 쿠키로 분류된다. 이 쿠키들은 주로 사용자의 웹 사용 행태를 추적하여 타깃 광고를 제공하는 데 사용된다.

이 기준은 웹사이트가 사용자의 개인 정보와 선호도를 어떻게 관리하고 활용하는지에 중요한 영향을 미친다.

profile
https://sususoo.tistory.com/

0개의 댓글