네이버에서 로그인하고 로그인한 상태로 새로고침 -> 유지가된다
어떻게 구현할까?
로그인을 유지하는건 두가지 방식이 대표적이다.
세션기반인증방식과 토큰기반인증방식
HTTP의 특징중 하나는 상태가 없음(stateless)하다라는 것
즉 HTTP 요청을 통해 데이터를 주고받을 때 요청이 끝나면 사용자의 정보 등을 유지하지 않는 특징이 있다.
근데 어떻게 로그인 상태를 유지하나?
-> 이전에 로그인한 상태 값이 남아있어야 한다.
사용자가 로그인을 위해 정보 전송
입력한 값이 맞다면 서버는 세션아이디를 만들고 쿠키에 세션아이디를 담아 return하고 db나 was(web application server)에 저장해둠
다음부터 요청할때 클라이언트의 요청헤더에는 자동으로 쿠키가 설정됨
서버는 이 세션아이디를 기반으로 이 세션아이디에 맞는 유저 아이디/비번을 찾음 -> 유효한가를 파악
유효하네? 로그인 되어있다~는 상태값을 알려줌
db에 세션아이디 저장할 때의 문제점
어떤 단점이있냐.
직렬화와 역직렬화에 대한 cost
VARCHAR에 저장된 값을 꺼내서 다시 클라이언트에 보낼텐데 (JSON타입이나 문자열)
이때 오버헤드가 될 수 있다. 이러한 오버헤드가 그렇게 많진않지만 굳이 단점을 뽑자면 이거다
서버에 세션아이디 저장할때의 문제점
세션아이디가 많아지면(사용자가 많아지면) 서버의 메모리가 많이 소모되는 단점이 있다.
이것도 그렇게 많진 않다.