Theory

쿠키(Cookie)와 세션(Session)의 의미, 차이점

Jake the Dog 2022. 3. 16. 10:23
반응형
쿠키 (Cookie)란?

HTTP의 일종으로 사용자가 웹사이트를 방문할 경우 사이트가 사용하고 있는 서버에서 사용자에 컴퓨터에 저장하는 작은 기록 정보 파일이다. http에서 클라이언트의 정보를 클라이언트의 pc에 저장하였다가 필요시 참조하거나 재사용한다.

쿠키의 동작 방식

  1. 클라이언트가 Server에 페이지를 요청한다
  2. Server에서 쿠키를 생성한다
  3. http화면과 cookie를 클라이언트에게 제공한다
  4. 넘겨받은 쿠키를 저장한다
  5. 동일 사이트 재 방문 시 클라이언트의 PC에 쿠키가 있다면 재사용한다

쿠키의 구성

  • 이름
  • 만료일(저장기간)
  • 경로 정보

쿠키의 특징

  • 하나의 도메인당 20개의 쿠키를 가질 수 있다
  • 클라이언트에 총 3000개의 쿠키를 저장할 수 있다
  • 하나의 쿠키는 4kb까지 저장 가능

쿠키 사용 예

  • 방문 사이트에서 아이디와 비밀번호 저장하기
  • 팝업창이나 팝업 레이어에 오늘 이 창을 다시 보지 않기

세션이란?

일정 시간 동안 같은 사용자의 브라우저로부터 들어오는 요청을 하나의 상태 값으로 보고 그 상태를 유지시키는 기술이다. 시간은 특정 Timeout을 설정해 줄 수도 있지만 일반적으로는 웹 브라우저로 웹 페이지에 방문해서 브라우저를 종료하는 시점까지를 말한다. 방문자가 웹 서버에 접속해있는 상태를 하나의 단위로 보고 그것을 세션이라고 한다.

세션의 동작 방식

  • 클라이언트가 서버에 페이지를 요청
  • 서버는 접근한 클라이언트의 Request-Header필드인 Cookie를 확인하여 클라이언트가 session-id를 보냈는지 확인
  • session_id가 없다면 서버는 session-id를 생성해 클라이언트에게 돌려준다
  • 클라이언트는 session-id를 쿠키에 저장한다
  • 페이지 재 요청시 쿠키값의 session-id를 서버에 전달한다

세션의 특징

  • 웹 서버에 클라이언트의 상태를 유지하기 위한 정보를 저장한다
  • 웹 서버에 저장되는 쿠키라고 생각하면 쉽니다
  • 브라우저를 닫거나, 서버에서 세션을 삭제했을 때만 삭제가 된다.
  • 저장 데이터에 제한이 없다
  • 각 클라이언트에 고유 session-id를 부여한다

세션 사용 예

  • 웹 사이트 내 화면을 이동해도 로그인이 풀리지 않고 창을 닫기 전까지 유지하는 기능 구현

쿠키와 세션의 차이

  • 쿠키는 클라이언트에 필요한 정보를 저장하고, 세션은 서버에 정보를 저장하고 클라이언트 쿠키에는 session-id만을 저장한다
  • 쿠키는 서버의 자원을 사용하지 않는다는데서 서버 사이드의 자원을 아낄 수 있으나 위변조 등의 위험이 있다
  • 세션은 위변조 가능성이 적지만 서버의 자원을 사용하게 된다
  • 라이프 사이클 측면에서 쿠키는 일정 기간동안 클라이언트 내에 존재할 수 있는 반면, 세션은 클라이언트 종료 시 삭제된다
  • 속도 측면에서 쿠키가 더 우수하다
반응형