네트워크 | 토큰(Token)과 JWT

sojung·2022년 5월 18일
0

Network

목록 보기
4/4

토큰

서버에 토큰을 보내서 서버는 세션 DB에서 해당 토큰과 일치하는 정보를 찾는다.
세션은 모든 세션 ID를 DB에 저장하고, 요청이 들어올 때마다 서버는 쿠키에 담긴 세션 id와 일치하는 유저를 찾아야한다. 요청이 있을 때마다 DB에서 세션 ID를 찾아야 하므로 유저가 늘어나면 DB 리소스도 증가하게 된다.

JWT

토큰 형식이고, 세션 DB가 필요없다. 따라서 서버는 DB에서 유저를 찾는 일을 하지 않아도 된다.
브라우저에서 유저 정보를 받으면 서버는 sign을 한다. 그리고 사인된 정보를 string 형태로 브라우저로 보낸다.

동작방식

브라우저에서 토큰 또는 사인된 정보를 보낸다.
서버는 토큰을 받으면 해당 사인이 유효한지 체크하고(조작된 토큰은 아닌가) 토큰이 유효하다면 성공.

세션 vs JWT

항목세션JWT설명
브라우저에 전달하는 것세션 ID토큰JWT는 필요한 정보(예. 유저를 인증하는데 필요한 정보)를 토큰에 저장
DB필요불필요세션(세션 ID를 받아 DB에 저장), JWT(서버는 토큰이 유효한지만 검증하기 때문에 DB가 필요없음. JWT는 암호화가 안되어있기 때문에 비밀번호를 저장하면 안됨)
새로운 기능 추가가능불가능ex. 로그아웃
단점DB 유지보수 기능 증가
용량 제한도메인 당 20개, 1쿠키당 4KB제한 없음TMI. JWT는 용량제한 없음
profile
걸음마코더

0개의 댓글