HTTP 세션
쿠키를 기반으로 세션이 작동합니다. 세션을 통해 서버는 클라이언트를 기억하고 해당 클라이언트를 위한 정보를 저장할 수 있습니다.
예를 들어, 웹사이트 방문자는 온라인 상점의 장바구니에 상품을 담을 수 있습니다. 그리고 페이지를 새로고침한 후에도 서버는 클라이언트를 식별하여 이 브라우저에서 담아둔 상품들을 보여줄 수 있습니다.
어떻게 작동하는지 알아봅시다. 이미 알고 계시듯이, HTTP 프로토콜은 상태를 저장하지 않습니다. 즉, 서버는 요청이 어떤 클라이언트로부터 들어왔는지 구분할 수 없습니다. 따라서 이 경우 우회적인 방법이 사용됩니다.
그 핵심은 다음과 같습니다.
클라이언트의 첫 번째 요청 시 서버는
무작위로 생성된 고유 문자열이 담긴 쿠키를 설정해 줍니다.
이 쿠키를 세션 쿠키라고 하며 일반적으로
이름이 sessid입니다.
서버는 또한 모든 세션 쿠키의 목록을 자체적으로 보관하고 그 쿠키들에 필요한 데이터를 연결합니다. 예를 들어, 온라인 상점에서 고객이 선택한 상품 목록을 연결할 수 있습니다.
클라이언트가 다음에 요청할 때는 서버에 세션 쿠키를 보내게 되고, 서버는 이 쿠키로 클라이언트를 식별하여 해당 클라이언트를 위해 서버에 저장된 데이터를 얻을 수 있습니다.
HTTP 프로토콜은 요청 간에 데이터를 저장하지 않습니다. 그럼에도 불구하고, 서버는 사용자를 구분할 수 있습니다. 이는 어떻게 구현되었나요?