Session

August 19, 2022

Session 이란

Session의 이해를 위해 HTTP특징 Cookie의 개념을 선행해야한다.

HTTP 특징, Cookie의 개념 → Cookie

이 글에선 Session의 개념과 Cookie와의 비교를 설명하고자 한다.


Session

Session은 사용자가 웹 서버에 접속해 있는 동안 상태를 유지할 수 있도록 하는 기술이다.

사용자의 정보들을 브라우저에 저장하는 쿠키와는 달리 Session은 서버에서 유지, 관리한다.

쿠키는 보안이 취약하기 때문에 쿠키의 보완 목적으로도 Session이 사용된다.

브라우저가 종료되기 전까지 클라이언트의 요청을 유지한다.

Session 특징

  • 저장 용량의 제한이 없다.
  • 서버에선 세션 객체를 생성하여 요청받은 각 클라이언트 별로 고유한 세션 ID를 부여한다.
  • 쿠키에 세션 ID값을 담아 클라이언트에 응답한다.
  • 클라이언트 ID를 각각 독립적으로 관리하기 때문에 쿠키보다 비교적 보안성이 좋다.
  • 사용자의 브라우저가 종료되는 시점에 세션 쿠키도 제거된다.

Session 동작원리 ( 로그인과정 예시 )

session-1

  1. 사용자가 웹 사이트에서 ID, Password를 입력하여 서버에 로그인 요청을 보낸다.
  2. 서버는 DB를 확인하여 일치한다면 세션 객체를 생성하고 세션 ID를 부여한 뒤 서버 메모리에 저장한다.
  3. 로그인 요청의 응답으로 쿠키에 세션ID를 담아 사용자에게 보낸다.
  4. 사용자가 요청을 보낼 때 쿠키에 세션ID를 담아 요청을 보낸다.
  5. 서버에선 로그인 정보를 다시 확인하지 않고 세션ID를 통해 확인한다.
  6. 세션 ID가 유효하다면 해당 요청의 응답을 사용자에게 보낸다.

세션의 단점

  • 사용자가 많을 수록 서버의 메모리를 많이 차지하게 된다.
  • 동시 접속자의 수가 많은 웹사이트의 경우엔 서버 과부하의 원인으로 성능저하의 요인이다.

세션 & 쿠키 비교

세션과 쿠키를 동등한 위치에서 비교할 수 없는데 그 이유는 세션도 쿠키를 사용하기 때문이다.

쿠키를 보안성을 보완하기 위해 세션을 사용한다고 보면 된다.


정보 저장 위치

쿠키 : 클라이언트

세션 : 서버

사용자의 정보가 저장되는 위치가 쿠키는 클라이언트, 세션은 서버에 저장한다. 쿠키는 서버의 자원을 사용하지 않고 세션은 서버의 자원을 사용한다.

요청 & 응답속도

쿠키 : 세션보다 상대적으로 속도가 빠르다 할 수 있다.

세션 : 쿠키와 달리 서버에서의 처리 과정이 추가되어 쿠키보다 느리다.

만료시점

쿠키 : 쿠키 저장할 때 설정한 기간이 지나면 삭제 (브라우저 종료시에 삭제되지 않는다.)

세션 : 브라우저 종료시에 삭제

저장방식

쿠키 : text → text의 형태로 저장된다.

세션 : object → 서버에서 세션 객체의 형태로 저장된다.


참조

https://surprisecomputer.tistory.com/36

https://interconnection.tistory.com/74

https://chrisjune-13837.medium.com/web-쿠키-세션이란-aa6bcb327582