HTTP는 무상태 프로토콜이다.
무상태성은 통신이 끝나면 상태를 유지하지 않는 특징으로, 이는 HTTP 서버가 클라이언트 요청에 대해 아무것도 기억하지 않아도 된다는 의미다.
서버는 요청된 페이지를 반환하면 데이터 교환 기록을 모두 버려도 된다.
서버에서 정보를 기억하기 위해서 쿠키를 발명했다.
서버가 브라우저에 웹 페이지 데이터를 보낼 때, 브라우저가 저장하게 되어 있는 추가 텍스트 덩어리
쿠키란 사용자가 어떠한 웹사이트를 방문했을 때 해당 웹사이트의 서버에서 사용자의 로컬 환경에 저장하는 작은 데이터를 말한다.
브라우저가 같은 서버에 요청을 보내면, 브라우저는 그 쿠키를 도로 전송한다. 사실상 서버가 클라이언트 쪽 메모리를 사용하여 클라이언트의 이전 방문에 대한 정보를 기억하는 것이다.
쿠키는 유효기간이 있어 그 이후에는 브라우저에서 자동 삭제된다.
클라이언트가 정보를 요청하면 서버에서 정보를 값으로 넣은 쿠키를 생성해서 요청한 정보, 즉, HTTP 헤더와 함께 돌려보낸다. 그러면 클라이언트는 로컬 즉, 브라우저에 쿠키를 저장한다. 이 후 사이트에 재방문할 때는 사용자가 로컬 환경에 있는 쿠키와 함께 서버에 요청한다.
로그인 상태, 장바구니 내용 등에 사용된다.
쿠키가 악용되서 사람들의 웹 검색 활동을 추적하고 방문한 사이트 기록을 만든 다음, 표적 광고에 사용되기도 한다.