Http 프로토콜은 클라이언트에서ㅏ 서버에 요청을 보내면 서버는 클라이언트에 응답을 하고 연결을 끊는 특징을 가지고 있다.
Http 통신은 연결을 끊는 순간 클라이언트와 서버의 통신이 끝나며 상태 정보를 유지하지 않는 특징이 있으며 이를 Stateless라고 한다.
쿠키와 세션은 HTTP 프로토콜의 특징이자 약점을 보완하기 위해 사용
HTTP의 일종으로 사용자가 어떤 웹 사이트를 방문할 경우, 해당 사이트가 사용하고 있는 서버에서 사용자의 컴퓨터에 저장하는 작은 기록 정보 파일이다.
HTTP에서 클라이언트의 상태정보를 쿠키 형태로 클라이언트 PC에 저장하였다가 필요 시 정보를 참조하거나 재사용할 수 있다.

1. 클라이언트가 서버에 로그인 요청
2. 서버는 클라이언트의 로그인 요청의 유효성을 확인하고 응답헤더에 set-cookie를 통해 쿠키를 추가하여 응답
3. 클라이언트는 이후 서버에 요청할 때 전달받은 쿠키를 자동으로 요청헤더에 추가하여 요청한다. 헤더에 쿠키값을 자동으로 추가하여 주는데, 이는 브라우저에서 처리해주는 작업
쿠키의 기한이 정해져있지 않고 명시적으로 지우지 않는다면, 반 영구적으로 쿠키가 남아있다.
쿠키는 클라이언트에서 수정할 수 있기 때문에 위/변조의 위험이 존재한다. 따라서 쿠키값을 암호화해야 하며, 민감하거나 중요한 정보를 담지 않도록 해야한다.
일정 시간 동안 같은 사용자로부터 들어오는 일련의 요구를 하나의 상태로 보고, 그 상태를 유지시키는 기술
일정시간?: 방문자가 웹 브라우저를 통해 웹 서버에 접속한 시점부터 웹 브라우저를 종료하여 연결을 끝내는 시점까지
즉, 브라우저가 종료되기 전까지 클라이언트의 요청을 유지하게 해주는 기술을 세션이라고 한다.

1. 클라이언트가 서버에 로그인 요청
2. 서버는 클라이언트의 로그인 요청의 유효성을 확인하고 unique한 id를 session ID로 생성하여 저장한다.
3. 서버가 응답할 때 응답헤더에 세션 ID를 쿠키에 추가하여 응답한다.
4. 클라이언트는 이후 서버에 요청할 때 전달받은 세션 ID를 쿠키에 자동으로 요청 헤더에 추가하여 요청한다.
5. 서버에서는 요청 헤더의 세션 ID값을 저장된 세션 저장소에서 찾아보고 유효한지 확인 후 요청을 처리하고 응답한다.
사용자나 다른 누군가에게 노출되면 안되는 보안적으로 중요한 정보들을 서버안에서 다루기 위해 사용
세션의 내용은 서버에 저장되기 때문에 계속하여 늘어날 경우 서버에 부하가 발생
쿠키에 비해 속도가 비교적 느림