세션과 쿠키

도니·2022년 4월 16일
0

세션과 쿠키 모두 사용자에 대한 인증을 유지하기 위한 방법!

세션과 쿠키를 왜 사용할까?

HTTP 프로토콜의 특성은 Connectionless, stateless로 클라이언트가 요청을 한후 응답을 받으면 해당 연결을 끊어버리기 때문에다. 또한 연결을 끊는 순간 서버와의 통신이 끝나면서 상태 정보도 유지하지 않기 때문에 이러한 특징을 해결하기 위해서 사용한다.
만약 세션과 쿠키를 사용하지 않는다면 페이지를 변경할 때마다 계속 로그인을 해줘야하고 또한 3hand shake작업도 계속 해야한다.

세션

  • 세션은 사용자 정보를 브라우저에 저장하는 쿠키와 달리 서버측에서 관리한다.
  • 서버에서는 세션 ID를 부여하고 웹 브라우저가 서버에 접속해서 브라우저를 종료할 떄까지 인증상태를 유지힌다.
  • 접속시간에 제한을 두어 만약 일정 시간 이후로 접속이 안된다면 끊을 수 있다.
  • 세션이 많아진다면 서버의 리소스가 부족해질 수 있다.

쿠키

  • 클라이언트(브라우저)에 저장되는 키와 값이 들어있는 데이터 파일
  • 유효한 시간을 명시할 수 있으며, 유효 시간이 있다면 브라우저가 종료되도 인증은 유지됨
  • 쿠키는 사용자가 따로 요청하지 않아도 브라우저가 Request시에 Request Header에 넣어서 자동으로 서버에 전송한다.

차이점

  • 쿠키는 브라우저에 저장, 세션은 서버의 자원 사용
  • 보안 면에서 세션이 더 우수, 속도면에서 쿠키가 우수
  • 세션은 브라우저가 종료되면 만료시간과 상관없이 삭제됨
profile
세상만사에 호기심

0개의 댓글