서버가 사용자의 웹 브라우저에 전송하는 작은 데이터 조각
사용자가 웹사이트를 방문할 경우 해당 웹사이트의 서버를 통해 사용자의 컴퓨터에 설치되는 작은 기록 정보 파일
소프트웨어가 아니기에 프로그램처럼 실행될 수 없으며 악성코드를 설치할 수 없지만,사용자의 행동을 추적하거나 쿠키를 훔쳐서 해당 사용자의 계정 접근 권한을 획득할 수 있음
ex) 클라이언트가 서버에 로그인을 요청하면 서버에서 응답과 쿠키를 보내줌 그러면 나중에 재요청 할 때 쿠키가 로그인 된 상태를 포함에서 전달함
HTTP 쿠키는 상태가 있는 세션을 만들어 줌
쿠키는 두 요청이 동일한 브라우저에서 들어왔는지 아닌지를 판단할 때 주로 사용
웹 페이지에 접속하면 요청한 웹 페이지를 받으며 쿠키를 저장하고, 클라이언트가 같은 서버에 재 요청시 요청과 쿠키를 함께 전송
Django의 세션은 미들웨어를 통해 구현됨
Django는 database-backed sessions 저장 방식을 기본 값으로 사용
Django는 특정 session id를 포함하는 쿠키를 사용해서 각각의 브라우저와 사이트가 연결된 세션을 알아냄
모든 것을 세션으로 사용하려고 하면 사용자가 많을 때 서버에 부하가 걸릴 수 있음
SessionMiddleware
AuthenticationMiddleware