https://velog.velcdn.com/images/kkshin044/post/dbffb448-2093-4991-9734-e21d1006ed39/image.jpeg

쿠키

HTTP 쿠키는 웹 쿠키, 브라우저 쿠키로도 불리는데 서버가 사용자의 웹 브라우저에 전송하는 작은 데이터 조각을 의미합니다. 루 몬텔루라는 웹 브라우저 개발자가 웹 사이트에 접속한 클라이언트를 확인하기 위해 만들었다. HTTP 통신은 stateless입니다. 그렇기 때문에 통신이 종료되면 서버는 클라이언트가 누구인지를 알 수 없습니다. 그래서 클라이언트를 확인하기 위해서는 쿠키라는 방식을 사용합니다. 쿠키는 주로 세션 관리( 서버에서 관리하는 로그인 등의 정보를 의미한다. ), 개인 설정유지, 사용자 트래킹( 사용자의 행동을 기록하고 분석하는 것 ) 용도로 사용됩니다.

Stateless

HTTP의 stateless는 서버 입장에서 클라이언트의 상태가 없다는 의미입니다. 동일한 클라이언트의 요청이라도 매번 각 요청은 독립적이라는 의미입니다. 예를 들어 호텔 손님이 입장했다가 외출했을 때 카운터에서는 손님들을 한명 한명 다 기억할수가 없다. 그렇기 때문에 호텔에서는 재입장하는 손님을 구분하기 위해 명부 작성 및 호텔 키를 제공합니다. 마찬가지로 서버도 이미 요청을 한 클라이언트를 기억하기 위해 세션 작성 및 쿠키를 클라이언트에게 줍니다.

쿠키의 특징

쿠키의 작동 방식

쿠키도 결국 HTTP 통신에서 이루어지는 것이기 때문에 HTTP 의 응답과 요청에 따라 작동합니다. 요청을 받은 서버에서 쿠키를 클라이언트로 보내고 클라이언트는 쿠키를 받으면 도메인 서버 이름으로 정렬된 쿠키 디렉토리에 쿠키(정보)를 저장합니다. 이후 클라이언트가 동일한 서버로 HTTP 요청을 보내면 저장된 쿠키도 같이 전송되며, 만약 서버에서 쿠키에 업데이트된 내용이 있으면 응답할 때 다시 업데이트된 쿠키를 보내줍니다.

https://velog.velcdn.com/images/kkshin044/post/e20e1c00-4e5d-4b34-bd3c-9b3e6d587b2d/image.png

세션

세션(session)은 서버에 세션에 대한 정보를 저장해 놓고 세션 쿠키를 클라이언트에게 주어 서버가 클라이언트를 식별할 수 있도록 하는 방식자체를 의미합니다. 세션에 대한 정보는 세션 상태, 클라이언트 상태, 세션 데이터 등을 의미하며, 세션 쿠키는 고유한 세션 ID 값을 의미합니다.

세션의 특징