User "It's me 👋" <----- browser -----> Server "👀 Who are you?"
다양한 기억법이 필요한 이유
- 유저와 서버 간 정보 통신을 위해 데이터를 주고 받아야 함
- 허나 HTTP 통신은 stateless; 상태 유지가 없음
Cookie
- 로컬에 정보를 저장해 생산성을 높임
- 사용자가 데이터 수정 가능
- 중요한 정보는 nono
- 유효기간 있음
- 자동으로 보내짐
- session ID 를 함께 보낼 수 있음
- 보안이 취약
- ex) 팝업 보지 않기
Session
- 중요한 정보도 ok
- 사용자가 데이터 수정 불가
- session key 로 사용자 식별
- 모든 유저를 하나하나 구별해서 저장함 -> 속도가 느림
- ex) 로그인 된 디바이스, 넷플릭스 한 아이디 속 다중 사용자 프로필
Token
- hash -> Time complexity 낮아짐
- 사용자 식별
- 사용자가 소유
- 한계점: 같은 아이디 재접속 구별 불가; 토큰 유효성만 확인하기 때문; 다중기기 사용 문제 없음
- JSON Web Token
- 보안이 취약
Cache
- 데이터 찾는 데에 시간이 걸리는 경우 임시 저장해두었다가 필요시 꺼내줌