HTTP는 stateless(무상태)프로토콜이므로, 모든 요청이 이전 요청과 독립적으로 다뤄진다.
하나의 요청이 끝나면 서버는 이전요청에 대한 사용자가 누구인지 잊어버린다.
즉, 사용자가 이미 로그인 된 상태여도 로그인이 필요한 서비스에 접근하려면, 요청 할 때 마다 서버에게 로그인이 완료됐다는 것을 알려주어야 한다.
그 방식으로 세션(session)과 토큰(token)이 있다.
인증은 해당 서비스의 사용자가 맞는지 확인화는 과정이다.
인가는 인증된 사용자에게 리소스와 서비스에 접근할 수 있도록 사용 권한을 부여하는 작업이다.
세션이란 일정 시간 동안 같은 사용자(브라우저)로 부터 들어오는 일련의 요구를 하나의 상태로 보고 그 상태를 일정하게 유지시키는 기술이라고 한다.
또한 일정 시간이란 방문자가 웹 브라우저를 통해 웹 서버에 접속한 시점으로부터 웹 브라우저를 종료함으로써 연결을 끝내는 시점을 말한다.
즉, 방문자가 웹서버에 접속해 있는 상태를 하나의 단위로 보고 세션이라고 한다.
[참고] https://sherryhsu.medium.com/session-vs-token-based-authentication-11a6c5ac45e4#:~:text=Many%20web%20applications%20use%20JSON,instead%20of%20sessions%20for%20authentication.&text=The%20biggest%20difference%20here%20is,on%20the%20client%20side%20instead
[참고] https://88240.tistory.com/190
[참고] https://idlecomputer.tistory.com/239