쿠키와 세션

jjong_gang·2021년 12월 16일
0

기본

목록 보기
1/5

쿠키란?

HTTP의 일종으로 인터넷 사용자가 어떤 웹사이트를 방문할 때, 그 사이트가 사용하는 서버를 통해 인터넷 사용자의 컴퓨터에 설치되는 작은 기록 정보 파일을 의미합니다. 이런식으로 담긴 정보는 사용자가 같은 웹사이트를 방문할 때마다 읽히고 업데이트됩니다.

쿠키의 동작방식

  • 클라이언트가 페이지를 요청합니다.
  • 서버에서 쿠키를 생성합니다.
  • HTTP 헤더에 쿠키를 포함시켜서 응답합니다.
  • 브라우저가 종료되어도 쿠키 만료 기간이 있다면 클라이언트에서 보관합니다.
  • 같은 요청을 할 경우 HTTP 헤더에 쿠키를 함께 보냅니다.
  • 서버에서 쿠키를 읽어 이전 상태 정보를 변경할 필요가 있을 때 쿠키를 업데이트하여 변경된 쿠키를 HTTP헤더에 포함시켜서 응답합니다.

세션이란?

세션이란 일정시간동안 같은 사용자로부터 들어오는 일련의 요구를 하나의 상태로 보고, 그 상태를 일정하게 유지시키는 기술입니다. 여기서 일정시간은 사용자가 웹브라우저를 통해 웹 서버에 접속한 시점으로부터 웹브라우저를 종료하여 연결을 끝내는 시점을 말합니다.

세션의 동작방식

  • 클라이언트가 서버에 접속을 하게되면 세션 ID를 발급받습니다.
  • 클라이언트는 세션 ID에 대해 쿠키를 사용해서 저장합니다.
  • 클라이언트는 서버에 요청할 때, 이 쿠키의 세션 ID를 서버에 전달해서 사용합니다.
  • 서버는 세션 ID를 전달 받아서 별다른 작업없이 세션 ID로 세션에 있는 클라언트 정보를 가져옵니다.
  • 클라이언트 정보를 가지고 서버 요청을 처리하여 클라이언트에게 응답합니다.

쿠키와 세션의 차이점

세션도 쿠키를 사용하는 경우가 많다는 점에서 쿠키와 세션의 역할은 비슷하다고 할 수 있습니다. 하지만 차이점이 존재합니다.

  • 세션은 서버에 저장되어 서버의 자원을 사용하지만, 쿠키는 클라이언트 측에서 보관하기 때문에 서버의 자원을 사용하지 않습니다.

  • 속도 면에서는 쿠키가 세션보다 빠른 속도로 처리됩니다. 세션을 사용하기 위해서는 서버에서 데이터를 가져오는 과정을 거쳐야하기 때문입니다.

보안 면에서의 차이도 존재합니다.

  • 쿠키는 클라이언트 로컬에 저장되기 때문에, 변질되거나 request에서 스니핑 당하는 경우가 생길 수 있습니다. 하지만, 세션은 실제적인 데이터 처리는 보안적으로 상대적으로 안전한 서버에서 관리하고 로컬에서는 세션 아이디만을 보관하는 쿠키를 가지고있기 때문에, 보안적으로 안전하다고 볼 수 있습니다.

쿠키는 속도가 빠르지만, 위험요소가 있고 세션은 속도가 느리지만 안전합니다. 동시접속자가 많은 웹사이트의 경우, 세션의 무분별한 사용은 서버에 과부하를 줄 수 있으므로 쿠키를 사용하는 것이 권장됩니다.

0개의 댓글