Network

세션이란?

SambaLim 2019. 1. 13. 16:34
세션이란
  • 클라이언트와 웹서버 간 네트워크 연결이 지속 유지되고 있는 상태로 사용자가 브라우저를 열어 서버에 접속한 뒤 접속을 종료할 때까지를 말함
  • HTTP의 연결유지를 가능하게 해줌 : 임시로 저장하여 페이지 이동 시 사용, 클라이언트가 재접속 했을 때, 클라이언트를 구분
  • 클라이언트가 웹서버에 Request를 보내면, 해당 서버의 엔진이 클라이언트에게 유일한 ID를 부여하는데, 이 ID를 세션이라 부름

 

HTTP의 두 가지 특성을 알아야 세션을 이해하기 용이하다.

HTTP의 특성

  1. Stateless : 통신이 끝나면 상태 정보를 유지하지 않는다.
  2. Connectionless : 클라이언트가 서버에 요청을 하고 서버가 클라이언트에게 응답을 보내면 접속을 끊는다.

[장단점]

  • 장점 : 통신을 유지하고 있으면 드는 모든 리소스 낭비를 줄인다.
  • 단점 : 통신을 할때마다 계속 인증이 필요함

HTTP는 Stateless하기 때문에 로그인 상태 정보를 유지하지 않기 때문에 쿠키와 세션을 사용하지 않으면 페이지를 이동할 때마다 로그인 해야 한다.

세션의 원리

  1. 세션 ID를 서버에서 클라이언트가 웹사이트에 접속시 발급
  2. 서버에서 클라이언트로 발급해준 세선 ID를 쿠키를 사용해서 저장
  3. 클라이언트는 다시 접속시, 이 쿠키를 이용해서 세션 ID 값을 서버에 전달

세선의 장단점

  1. 장점
  2. 각 클라이언트에게 고유 ID를 부여 (정확한 구분)
  3. 세선 ID로 클라이언트를 구분하여 클라이언트의 요구에 맞는 서비스를 제공할 수 있음
  4. 사용했던 정보들을 서버에 저장하기 때문에 보안 면에서 쿠키보다 우수
  5. 단점
  6. 서버에 저장되는 세션때문에 서버에 처리를 요구하는 부하와 저장 공간을 필요로함