Posts 쿠키와 세션
Post
Cancel

쿠키와 세션

쿠키

  • 사이트가 사용하고 있는 서버를 통해 인터넷 사용자의 컴퓨터에 설치되는 작은 데이터 파일이다.
  • 클라이언트 로컬에 저당되며, Request 할 때 Request Header를 넣어서 자동으로 참조되어 저장된 상태 정보를 유지할 수 있다.
  • 클라이언트에 300개까지, 하나의 도메인당 20개까지, 하나의 쿠키당 4kb까지 저장할 수 있다.
  • Ex. 자동 로그인, 오늘 더 이상 이 창을 보지 않음 등등.
  • 동작 방식
    • 클라이언트가 페이지를 요청한다.
    • 서버에서 쿠키를 생성한다.
    • Request 헤더에 쿠키를 포함시켜 전달한다.
    • 같은 요청을 할 경우 HTTP에 헤더에 쿠키를 함께 보낸다.
    • 이전 정보를 업데이트할 필요가 있을 때, 쿠키를 업데이트해서 변경된 쿠키를 Request 헤더에 넣어 응답한다.

세션

  • 사용자 정보 파일을 브라우저에 저장하지 않고, 서버에 저장한다.
  • 서버에서 클라이언트를 구분하기 위해 세션ID를 부여하고, 이를 기반으로 브라우저를 종료할 때까지 인증상태를 유지한다.
  • 서버에 저장하기 때문에 보안이 좋지만, 서버에 부하를 주기 때문에 성능 저하의 원인이 되기도 한다.
  • 클라이언트가 최초로 Request를 보내면 서버가 클라이언트에게 유일한 ID인 Session ID를 부여한다.
  • Ex. 로그인등의 보안이 요구되는 기능
  • 동작 방식
    • 클라이언트가 서버 접속 시 Session ID를 발급받는다.
    • 클라이언트는 Session ID에 대해 쿠키를 사용해서 저장하고있다.
    • 클라이언트는 서버에 Request를 보낼때, Session ID를 서버에 같이 전달한다.
    • 서버는 Session ID를 기반으로 Session에 있는 클라이언트 정보를 가져온다.
    • 클라이언트 정보를 갖고 서버 요청을 처리하여 클라이언트에 응답한다.

쿠키 VS 세션

  • 쿠키는 로컬에 저장되고, 세션은 서버에 저장된다.
  • 둘다 만료시간이 있지만, 쿠키는 파일로 저장되기 때문에 브라우저를 종료해도 남아있고, 세션은 브라우저가 종료되면 바로 삭제된다.
  • 쿠키는 속도가 빠르고 보안이 취약하지만, 세션은 서버를 거쳐야해서 속도가 비교적 느리고 보안이 우수하다.
  • 정보를 쿠키 형태로 저장하는 것은 같지만, 쿠키는 로컬에 저장된 파일을 통해 정보를 가져온다면 세션은 Session ID에 맞는 세션에 있는 정보를 가져온다는 차이가 있다.
  • 세션은 서버의 자원을 사용하기 때문에 무분별하게 만든다면 서버의 메모리가 낭비될 수 있다. 따라서 보안과 속도의 중요성을 고려해 쿠키와 세션을 선택하는 것이 좋다.

참고: https://interconnection.tistory.com/74

This post is licensed under CC BY 4.0 by the author.

Contents

Trending Tags