HTTP(HyperText Transfer Protocol)는 클라이언트가 서버로부터 리소스들을 가져올 수 있도록 해주는 클라이언트와 서버간의 의사소통 수단이다. 특징으로 HTTP 통신은 Request와 Response로 이루어 지고, 매 요청마다 HTTP는 상태를 저장하지 않는다(Stateless).
따라서, Stateless한 성질때문에 웹사이트에서 사용자가 로그인한 회원인지에 대한 인증을 관리하는 방안이 필요하다.
1. 서버에서 아이디, 비밀번호 인증을 완료한 사용자에게 Access Token을 발급.
2. 클라이언트에서 Access Token을 별도의 공간(local storage, session storage, cookie 등)에 저장한 후, 서버에 요청할 때 헤더에 토큰을 포함.
3. 서버는 해당 JWT의 유효성을 검사하고 인가.
1. 서버에서 아이디, 비밀번호 인증을 완료한 사용자에게 고유한 ID를 부여하여 세션DB에 저장 후 세션ID발급 (사용자 특정 가능)
2. 서버에서 HTTP 응답 헤더에 발급된 세션ID를 실어 보냄.
3. 매 요청마다 쿠키에 세션ID실어서 보냄.
4. 서버에서는 쿠키를 받아 세션DB에서 확인 후 세션ID에 맞는 정보를 가져옴.