Server

세션과 쿠키의 차이

SambaLim 2019. 1. 29. 23:34
세션과 쿠키의 차이

쿠키

  • 쿠키는 클라이언트 로컬에 저장되는 키와 값이 들어있는 데이터 파일이다.
  • 쿠키는 이름, 값, 만료날짜(쿠키 저장기간), 경로 정보가 들어있다.
  • 쿠키는 일정시간동안 데이터를 저장할 수 있다.
  • 쿠키는 클라리언트의 상태 정보를 로컬에 저장했다가 참조한다.

 

세션

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

 

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

 

HTTP의 특성

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

[장단점]

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

 

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

 

세션의 원리

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

 

세선의 장단점

장점

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

단점

  1. 서버에 저장되는 세션때문에 서버에 처리를 요구하는 부하와 저장 공간을 필요로함

 

세션과 쿠키의 차이

저장위치

쿠키는 클라이언트에 파일로 저장되고 세션은 서버에 저장된다.

보안

쿠키는 클라이언트의 로컬에 파일로 저장되기 때문에 변질되거나 request에서 스나이핑 당할 우려가 있어 보안에 취약. 하지만 세션은 쿠키를 이용하여 sessionId만 저장하고 이를 서버에서 처리하기 때문에 비교적 보안성이 좋다.

라이프 사이클

쿠키도 만료시간이 있지만 파일로 저장되기 때문에 브라우저를 종료해도 계속해서 정보가 남아 있을 수 있다. 또한 만료기간을 넉넉하게 잡아두면 쿠키삭제를 할 때 까지 유지할 수도 있다.

하지만 세션은 브라우저가 종료되면 삭제된다.

속도

쿠키는 로컬에 정보가 있기 때문에 비교적 속도가 빠르고 세션은 정보가 서버에 있기 때문에 처리가 요구되어 비교적 느린 속도를 낸다.

'Server' 카테고리의 다른 글

SSL 인증서 생성하기 (HTTPS)  (0) 2021.05.18