쿠키와 세션

Icarus_w·2022년 12월 25일
0

CS공부

목록 보기
17/25

쿠키와 세션의 필요 이유

HTTP특징 Connectionless, Stateless 때문에 클라이언트가 이전 상태를 유지하지 않음

쿠키(Cookie)

  1. 서버가 클라이언트로부터 요청을 받았을 때, 클라이언트 정보를 토대로 쿠키를 구성
  2. 서버는 클라이언트에게 보내는 응답의 header에 쿠키를 담아 보냄
  3. 클라이언트가 응답을 받으면, 브라우저는 쿠키를 쿠키 디렉터리에 저장

클라이언트(브라우저)가 Key-Value쌍으로 로콜에 저장되는 데이터 파일

유효시간 내에서 블라우저가 종료되어도 계속 유지

사용자가 따로 작업을 하지 않아도 브라우저가 쿠키를 request header에 담아 서버에 전송

image

세션

기본적으로 쿠키를 이용하여 구현

클라이언트를 구분하기 위해 각 클라이언트에게 session ID를 부여하고 클라이언트 쿠키에 session ID를 저장한다.

세션은 서버측에 저장하여 관리 되기 때문에 보안은 좋지만 서버에 과부하를 줄 수 있다.

image

쿠키세션
저장 공간클라이언트(브라우저)서버
보안성낮음높음
특징브라우저가 종료되어도 유지서버용량에 따라 저장 가능->서버 과부화
사용 예시장바구니, 자동로그인, 팝업체크

쿠키와 세션을 통한 인증과 인가

  1. 클라이언트가 로그인을 하면 서버는 회원정보를 대조하여 인증을 한다.(인증)

  2. 회원 정보를 세션저장소에 생성하고 session ID를 발급

  3. http response header 쿠키에 발급한 session ID를 담아서 보낸다.

  4. 클라이언트에서 session ID를 쿠키 저장소에 저장하고, 이후 http request를 보낼 때마다 쿠키에 session ID를 담아서 보낸다.

  5. 서버에서 쿠키에 담겨져온 session ID에 해당하는 회원 정보를 세션 저장소에서 가져옴

    (인가)

  6. 응답 메시지에 회원 정보를 바탕으로 처리된 데이터를 담아서 클라이언트에 보냄

image

단점

  1. Load Balancing

    서버가 처리해야할 요청(Load)을 여러대의 서버로 나누어(Balancing) 처리하는 기법

  2. 서버 효율성 관리 및 확장이 어려움

profile
하루에 하나

0개의 댓글