lottie
Seungjun's blog
blog
Session이란?

세션이란?

세션(session)이란 클라이언트로부터 오는 일련의 요청을 하나의 상태로 보고 그 상태를 일정하게 유지하는 기술이자 클라이언트가 웹 서버에 접속해있는 상태가 하나의 단위이다.

세션은 웹서버에 웹 컨테이너의 상태를 유지하기 위한 정보를 저장합니다.

브라우저를 닫거나 서버에서 세션을 삭제하면 세션이 삭제됩니다. 세션은 각 클라이언트의 고유세션 ID를 부여하는데, 이것으로 클라이언트를 구분하여 각 클라이언트의 요구에 맞는 응답을 반환합니다.

세션 동작순서

  1. 클라이언트 요청

  2. Request-Header 필드의 Cookie 에서 세션ID를 보냈는지 확인

  3. 세션ID가 없을 경우, 서버에서 생성하여 클라이언트에게 전송

  4. 쿠키를 사용해 세션ID를 서버에 저장

  5. 클라이언트 재접속 시, 쿠키를 이용하여 세션ID 값을 서버에 전달


쿠키와 세션 차이

image

쿠키는 브라우저 종료 시 삭제되는 세션과 달리 쿠키 저장시 만료시점을 저장하여 브라우저가 종료되더라도 자동 삭제되지 않습니다. 즉, 만료시점이 지나야 쿠키가 삭제되는 것 입니다. 세션은 서버에 저장되므로 안전한 반면, 쿠키는 로컬에 저장되어 탈취,변조 위험이 존재합니다. 이러한 세션은 보안에 취약한 쿠키를 보완해주는 역할을 하고 있습니다.


하지만 세션은 제공받은 세션Id를 이용해서 서버에서 다시 데이터를 참조해야 하므로 쿠키에 비해 느립니다.