CS

쿠키와 세션이 무엇일까?

다오__ 2023. 6. 19. 14:21

클라이언트와 서버는 비연결성 HTTP프로토콜로 되어있다. 그리고 무상태(Stateless)이다. 하지만 우리는 상태정보가 유지(Stateful)되어있는것 처럼 느낀다 여기에는 쿠키 세션 또는 JWT가 있다.

 

쿠기와 세션 모두 HTTP에 상태 정보를 유지(Stateful)하기 위해 사용된다. 쿠키와 세션을 통해 서버에서는 클라이언트 별로 인증 및 인가를 할 수 있게 된다

 

 

 

1. 쿠키

  • 라이언트에 저장될 목적으로 생성한 작은 정보를 담은 파일
  • 크롬 브라우저 기준으로 개발자도구 -> Application -Storage - Cookies에 도메인 별로 저장되어있는것을 확인할 수 있다.

 

2. 세션

  • 서버에서 일정시간 동안 클라이언트 상태를 유지하기 위해 사용된다.
  • 서버에서 클라이언트별로 유일무이한 '세션 ID'를 부여한 후 클라이언트 별 필요한 정보를 서버 저장한다.
  • 서버에서 저장한 '세션ID'는 클라이언트의 쿠키값('세션 쿠키'라고 부름)으로 저장되 클라이언트 식별에 사용된다.

세션 동작 방식을 보자

실제로는 이어저 있지 않지만 계속 이어지는 것처럼 보여지게 하기 위해서 세션ID를 응답할 때

주고 클라이언트도 요청흘 할때 같이 주는것이다. 그것을 서버에서 검증하여 같은 클라이언트라는 것을 알 수 있게 된다.