로그인 #1. 세션기반인증방식

YooJeeun·2025년 3월 5일

cs 스터디

목록 보기
58/65

네이버에서 로그인하고 로그인한 상태로 새로고침 -> 유지가된다
어떻게 구현할까?
로그인을 유지하는건 두가지 방식이 대표적이다.
세션기반인증방식토큰기반인증방식

HTTP의 특징중 하나는 상태가 없음(stateless)하다라는 것
즉 HTTP 요청을 통해 데이터를 주고받을 때 요청이 끝나면 사용자의 정보 등을 유지하지 않는 특징이 있다.
근데 어떻게 로그인 상태를 유지하나?
-> 이전에 로그인한 상태 값이 남아있어야 한다.

  • 세션: 서버와 클라이언트의 연결이 활성화된 상태
  • 세션ID: 웹서버 또는 DB에 저장되는 클라이언트에 대한 유니크한 ID(사용자를 구분할 수 있음)

사용자가 로그인을 위해 정보 전송
입력한 값이 맞다면 서버는 세션아이디를 만들고 쿠키에 세션아이디를 담아 return하고 db나 was(web application server)에 저장해둠
다음부터 요청할때 클라이언트의 요청헤더에는 자동으로 쿠키가 설정됨
서버는 이 세션아이디를 기반으로 이 세션아이디에 맞는 유저 아이디/비번을 찾음 -> 유효한가를 파악
유효하네? 로그인 되어있다~는 상태값을 알려줌

db에 세션아이디 저장할 때의 문제점
어떤 단점이있냐.
직렬화와 역직렬화에 대한 cost
VARCHAR에 저장된 값을 꺼내서 다시 클라이언트에 보낼텐데 (JSON타입이나 문자열)
이때 오버헤드가 될 수 있다. 이러한 오버헤드가 그렇게 많진않지만 굳이 단점을 뽑자면 이거다

서버에 세션아이디 저장할때의 문제점
세션아이디가 많아지면(사용자가 많아지면) 서버의 메모리가 많이 소모되는 단점이 있다.
이것도 그렇게 많진 않다.

profile
제니벨로그

0개의 댓글