본문 바로가기

개발용어

알아두면 좋은 개발용어 5 (세션)

반응형

쿠키에 이어서 오늘은 세션에 대해서 알아볼게요!

2021.05.02 - [서비스 기획] - 알아두면 좋은 개발 용어 4 (쿠키)

 

쿠키와 세션의 차이는 사용자 정보를 클라이언트가 저장하느냐, 서버가 저장하느냐, 일 수 있어요. 물론 자세히 알아보면 이렇게 간단하지 않겠지만요.

 

세션(Session)

  • 개요
    • 세션은 쿠키를 기반하고 있지만, 서버 측에서 관리함
    • 서버에서 클라이언트를 구분하기 위해서 세션ID를 부여하며 클라이언트당 1개씩 생성되어 웹컨테이너에 저장됨
    • 클라이언트가 접속을 종료할 때까지 인증상태를 유지하고, 접속 시간에 제한을 두어 응답이 없다면 정보를 유지 않게 설정 가능 (참고, 로그아웃 하면 새로운 사용자 인식함)
  • 동작 방식
    • 클라이언트가 서버 요청
    • 클라이언트가 서버 접속 시 서버는 쿠키 및 세션ID 발급 
    • 서버는 응답 전달 시 세션ID를 포함하여 쿠키 전달
    • 클라이언트는 쿠키 저장 
    • 클라이언트는 서버에 요청할 때 세션ID를 서버에 전달하여 사용
    • 서버는 클라이언트가 전달해준 세션ID를 가지고 서버 메모리에 사용자 정보 확인
    • 서버 요청에 대한 응답 처리

  • 특징 
    • 각 클라이언트에서 고유한 세션ID로 클라이언트의 요구에 맞게 서비스 제공 ( 예시 : 보안이 중요한 로그인의 경우 사용 ) 
    • 사용자 정보를 서버에 두어 보안면에서는 쿠키보다 우수하나 사용자가 많아질수록 서버 메모리를 많이 차지하게 됨
    • 동접자수가 많은 웹 사이트인 경우 서버 과부하를 주어 성능저하의 요인이 됨

쿠키와 세션이 조금 헷갈리시나요?

 

다시 기존의 예시인 식당 주문으로 돌아가 보겠습니다.

쿠키 설명할 때 내 주문정보가 남아있는 것이 바로 쿠키라고 말씀드렸는데, 식당에 가면 보통 손님을 구분하는 게 테이블 번호가 있잖아요. 그것을 세션이라고 생각하시면 됩니다. 세션은 손님이 앉자마자 발급되는 유니크한 키이고, 손님을 구분하는 값입니다. 그 구분하는 값 아래 내가 주문한 정보가 남아 있습니다. 물론 서버와 클라이언트 동작이 이렇게 동일하게 동작하지 않을 수 있지만, 이렇게 하면 좀 더 쉽게 이해가 되지 않을까 싶어서요.    

 

이상입니다. 

다음에는 뭘 써야 하나 생각해보겠습니다.

 

참고 :

쿠키와 세션 개념 : interconnection.tistory.com/74

[web] 쿠키(cookie)와 세션(session)의 개념/차이/용도/작동방식 : devuna.tistory.com/23

반응형