개발 & 데이터베이스/CS

쿠키와 세션 차이, 그리고 캐시는 어떻게 다를까?

K.두부 2023. 7. 13. 20:23
반응형

쿠키 (Cookie)

사용자가 어떠한 웹 사이트에 방문했을 경우, 그 사이트가 사용하고 있는 서버에서 사용자의 컴퓨터에 저장하는 작은 기록 정보 파일로 HTTP에서 클라이언트 상태 정보를 클라이언트 PC에 저장하였다가 필요 시 정보를 참조하거나 재사용할 수 있다.

 

1. 동작방식

  1) 클라이언트가 페이지를 요청 (사용자가 웹 사이트에 방문)
  2) 서버에서 쿠키를 생성

  3) HTTP 헤더에 쿠키를 포함시켜 응답

  4) 브라우저가 종료되어도 쿠키 만료 기간이 있다면 클라이언트에서 보관

  5) 같은 요청을 할 경우 HTTP 헤더에 쿠키를 함께 보냄

  6) 서버에서 쿠키를 읽어 이전 상태 정보를 변경할 필요가 있을 때 쿠키를 업데이트하여 변경된 쿠키를 HTTP 헤더에 포함시켜 응답

 

2. 예시

● 로그인 시 "아이디와 비밀번호를 저장하시겠습니까?" 메시지

● 쇼핑 장바구니

 

 

세션 (Session)

방문자가 웹 서버에 접속한 시점부터 웹 브라우저를 종료하여 연결을 끝내는 시점까지 같은 사용자로부터 들어오는 일련의 요구를 하나의 상태로 보고 그 상태를 유지하는 기술

 

1. 동작방식

  1) 클라이언트가 서버에 접속 시 세션 ID를 발급 받음

  2) 클라이언트는 세션 ID에 대해 쿠키를 사용해서 저장하고 가지고 있음

  3) 클라이언트는 서버에 요청할 때, 이 쿠키의 세션 ID를 같이 서버에 전달해서 요청

  4) 서버는 세션 ID를 전달받아서 별다른 작업없이 세션 ID로 세션에 있는 클라이언트 정보를 가져와서 사용

  5) 클라이언트 정보를 가지고 서버 요청을 처리하여 클라이언트에게 응답

 

2. 예시

● 화면을 이동해도 로그인이 풀리지않고 로그아웃하기 전까지 유지

 

 

✅ 왜 세션이 아닌 쿠키를 사용할까?

 : 세션이 쿠키에 비해 보안이 높은 편이나 쿠키를 사용하는 이유는 세션은 서버에 저장되고, 서버의 자원을 사용하기에 서버 자원에 한계가 있고, 속도가 느려질 수 있기 때문에 자원관리 차원에서 쿠키와 세션을 적절한 요소 및 기능에 병행 사용하여 서버 자원의 낭비를 방지하며 웹사이트 속도를 높일 수 있다.

 

쿠키와 세션의 차이

  쿠키 세션
저장 위치 클라이언트 로컬 (브라우저 / 개인PC) 서버 (웹사이트)
보안 로컬에 저장되기 때문에 변질되거나 request에서 스니핑 당할 우려가 있어 비교적 취약함 쿠키를 이용해서 sessionid만 저장하고 그것으로 구분해서 서버에서 처리하기 때문에 비교적 강함
라이프 사이클 브라우저를 종료해도 만료 시점까지 보관 브라우저 종료하면 삭제
속도 정보를 이미 가지고 있기 때문에 비교적 빠름 sessionid를 이용해서 서버에서 정보를 처리하므로 비교적 느림
저장형식 Text Object

 

캐시 (Cache)

사용빈도가 높은 데이터를 고속으로 액세스 할 수 있는 위치에 두는 것, 임시 저장소

 

● 저장 공간이 작고 비용이 비싼 대신 빠른 성능을 제공한다.

● 다시 사용될 확률이 있는 데이터들이 빠르게 접근할 수 있어진다.

 

반응형