로그인 기능 구현시 쿠키와 세션을 이용하는 이유

Preznt·2023년 2월 18일
0

HowDo

목록 보기
1/1

로그인 기능을 이용할 때 쿠키, 세션, 토큰을 사용하는 이유는 결국 HTTP가 stateless(무상태), connectionless(비연결성) 이라는 특성을 가지고 있기 때문입니다.

  • 비연결성 : 클라이언트 요청에 서버가 응답을 하면 연결을 끊어버리는 것을 말한다.
  • 무상태 : 비연결성에 의해서 서버가 클라이언트를 식별하지 못하는 것을 말한다.

쿠키

: 브라우저(클라이언트)에서 관리하는 작은 기록 정보 파일

브라우저는 매 요청마다 쿠키를 동봉해서 보내기 때문에 이 쿠키안에 상태정보를 저장하게 되면 이 데이터가 존재하면 로그인 상태로 아니면 로그아웃 상태로 설정해 줄 수 있습니다.

  • 브라우저에 쿠키가 있을경우와 없을경우

    브라우저에 쿠키가 없을 경우 서버에서 쿠키를 새롭게 설정해서 보냅니다.
    브라우저에 쿠키가 있을 경우에는 서버에 동봉해서 보내면 로그인때 쿠키에 해당 유저정보를 저장했다면 그 쿠키에 있는 데이터를 가지고 유저 정보가 있으면 로그인 상태 아니면 로그아웃 상태로 하도록 만들 수 있습니다.

세션

쿠키와 가장 큰 차이점은 쿠키는 데이터를 브라우저에 저장하지만 세션은 서버단에 저장합니다.
서버에서 클라이언트를 구분하기 위해 세션ID를 부여합니다.

  • 브라우저에 쿠키가 있을경우와 없을경우

    브라우저에 쿠키가 없을경우 서버에서 쿠키를 새롭게 설정해서 보내주는데 이때 세션ID를 부여해주며, 데이터는 서버단에 저장합니다.
    브라우저에 쿠키가 있을경우 해당 세션ID 에 맞는 데이터를 찾고 해당 데이터를 이용해 로그인 기능을 구현할 수 있습니다.

  • 단점 : 서버단에서 데이터를 저장하기때문에 보안에 좋지만 사용자가 많아지면 서버단에 저장해야할 데이터가 많아지기 때문에 서버 메모리를 많이 차지하게 됩니다.

0개의 댓글