쿠키
- 브라우저에 저장
- 웹사이트를 방문해 사용언어를 선택한다면, 다음 방문 때 쿠키에 저장된 언어를 서버로 보내서 해당 언어에 해당하는 response를 보내온다.
stateless
- 서버로 가는 모든 요청이 이전 리퀘스트와 독립적으로 다뤄진다는 뜻
- 요청이 끝나면 서버는 그 요청을 잊기 때문에 매번 보내줘야 한다.
- 이때 사용하는 것이 세션
세션
- ID/PW를 확인하여 올바를 경우 세션DB에 유저 생성. 생성된 세션은 고유의 세션ID가 있어 쿠키를 통해 브라우저에 저장됨
- 그 세션 ID가 요청마다 서버로 전달되고 이것을 통해 매 요청마다 서버는 내가 누군지 알게됨.
- 유저가 가지고 있는 것은 세션ID 뿐
- 쿠키는 세션ID를 전달하기 위한 매개체일 뿐
- 쿠키는 브라우저에만 있기 때문에 네이티브 앱에서는 사용불가, 그래서 사용하는 것이 토큰
토큰
- JWT(Json Web Token)
- 서버에 세션 DB가 필요없어짐
- ID/PW를 확인하여 올바를 경우 어떠한 처리를 통해 무작위 문자열을 만들어내고 이를 클라이언트에게 return함
- 요청시에 이 토큰을 서버에 보내고 서버는 해당 사인이 유효한지 체크
- JWT는 암호화 된 것이 아님. 누구나 열어서 볼 수 있다.