쿠키와 세션

초콜렛빵·2022년 5월 17일
0

TIL

목록 보기
9/27

쿠키와 세션(Cookie and Session)

쿠키(Cookie)와 세션(Session) 사용 이유

  • HTTP 프로토콜은 connectionless 클라이언트가 요청에 대한 응답 받으면 끊는 성질와 stateless 통신이 끝나면 상태를 유지하지 않음 한 특성을 가져 클라이언트가 누군지 매번 확인이 진행되야함
  • 이에 대한 특성을 보완하기 위해 진행

쿠키

  • 클라이언트(브라우저) 로컬에 저장되는 키와 값이 들어있는 작은 데이터 파일
  • 사용자 인증이 유효한 기간 명시가능하며, 브라우저가 종료되어도 인증유지
  • 쿠키는 클라이언트의 상태 정보를 저장했다가 참조
  • 클라이언트에 300개 쿠키저장 가능하며, 도메인당 20개 값 가질 수 있음
  • 따로 요청하지 않아도 Request시 Request Header 넣음
  • 동작 방식
    1. 클라이언트가 페이지 요청
    2. 서버에서 쿠키 생성
    3. HTTP 헤더에 쿠키를 포함시켜 응답
    4. 브라우저가 종료되어도 만료기간 포함시 클라이언트에서 보관
    5. 같은 요청시 HTTP헤더에 쿠키 함께 보냄
    6. 서버에서 이전 상태 정보 변경 필요시 쿠키업데이트해 쿠키를 헤더에 포함시켜 응답

세션

  • 쿠키 기반이지만, 서버측에서 관리하는 데이터
  • 서버에 접속해 브라우저 종료시까지 인증상태 유지
  • 접속 시간 제한을 두어 정보가 유지되지 않도록 설정 가능
  • 정보가 서버에 있어 보안 측면에선 좋지만, 서버 메모리에 부하가 갈 수 있음
  • Request 전송시, 서버의 엔진이 클라이언트에게 유일한 ID 부여하는데 이를 세션 ID라고 함
  • 동작 방식
    1. 클라이언트가 서버에 접속시 세션 ID 발급
    2. 세션 ID에 대해 쿠키를 사용해 저장하여 가지고 있음
    3. 서버 요청시 해당 세션 ID를 포함해 전달
    4. 서버는 이 세션 ID를 이용해 클라이언트 정보를 가져와 사용
    5. 클라이언트 정보를 가지고 서버 요청 처리하여 응답

    최근 추세

  • 세션은 서버 메모리를 차지하여 부하가 갈수있어 이를 해결하기 위해 토큰 기반의 인증 방식을 사용하는 추세 → 대표적으로 JWT
profile
차근차근 기록하고 배우는 개발자

0개의 댓글