이전에 웹스토리지에 대해서 설명한 적이 있다.
그중 쿠키와 세션을 활용해서 로그인 어떻게 되는지에 대해서 흐름을 정리하려고 한다.
HTTP의 특성인 Stateless 때문에 클라이언의 요청이 상태 정보를 알 수 없으니,
얘가 누구인지 알 방법이 없다. 이를 해결하기 위한 방법 중 하나가 쿠키와 세션이다.
쿠키를 활용한 로그인 예시

클라이언트가 서버에 로그인을 요청한다.
서버는 요청 데이터의 유효성을 확인하고, header에 쿠키를 담아 응답한다.
클라이언트는 서버에서 받은 쿠키를 자동으로 요청하는 헤더에 추가해서 유저 정보를 요청한다.
서버는 쿠키를 확인하고 유저 정보를 응답한다.
❗쿠키의 취약점 때문에 유효기간을 정하거나, HttpOnly와 같은 옵션을 설정해서 자바스크립트로 쿠키에 접근이 불가능하게 하는 것도 좋은 방법이다.
세션을 활용한 로그인 예시

클라이언트가 서버에 로그인을 요청한다.
서버는 요청 데이터의 유효성을 확인하고, 쿠키에 세션ID를 담아 응답한다.
클라이언트는 서버에서 받은 쿠키를 자동으로 요청하는 헤더에 추가해서 유저 정보를 요청한다.
서버는 세션ID를 확인하고 유저 정보를 응답한다.
❗ 세션을 브라우저가 종료될 때까지만 인증 상태를 유지한다.
그래서 브라우저가 종료된 경우에는 다시 로그인해서 새로운 세션을 발급받아야 한다.