쿠키(Cookie), 세션(Session), 캐시(Cache)는 웹 애플리케이션에서 데이터를 저장하고 관리하는 데 사용되는 세 가지 주요 개념입니다.
쿠키(Cookie)
쿠키는 클라이언트 측(웹 브라우저)에 저장되는 작은 데이터 파일입니다. 주로 사용자와 웹 서버 간의 상태 정보를 저장하고 유지하는 데 사용됩니다.
- 저장 위치: 클라이언트(웹 브라우저)
- 수명: 서버가 설정한 만료 시간까지 지속됨. 만료 시간 없이 설정된 쿠키는 브라우저 세션이 끝나면 삭제됨.
- 사용 예: 로그인 상태 유지, 사용자 설정 저장, 트래킹 정보 저장
- 장점: 서버 부담 감소, 사용자의 장치에 데이터 저장 가능
- 단점: 보안 취약성(쿠키 탈취), 저장 용량 제한(일반적으로 4KB)
세션(Session)
세션은 서버 측에서 관리되는 데이터 저장 방식으로, 사용자와 웹 서버 간의 대화 상태를 유지하는 데 사용됩니다. 세션 데이터는 고유한 세션 ID를 통해 식별되며, 이 ID는 클라이언트의 쿠키나 URL 파라미터에 저장됩니다.
- 저장 위치: 서버
- 수명: 일정 시간 동안 활동이 없으면 만료됨(예: 30분). 브라우저를 닫으면 세션이 종료될 수 있음.
- 사용 예: 로그인 상태 유지, 장바구니 정보 저장, 사용자 데이터 저장, 이중화 서버 간 동기화
- 장점: 보안성 높음, 클라이언트 저장 공간 제한 없음
- 단점: 서버 메모리 사용 증가, 서버 간 세션 공유 필요
캐시(Cache)
캐시는 자주 사용되는 데이터나 연산 결과를 임시로 저장하여 빠르게 접근할 수 있도록 하는 메모리 저장소입니다. 웹 애플리케이션에서 캐시는 주로 클라이언트 측(브라우저 캐시)과 서버 측(애플리케이션 캐시)에서 사용됩니다.
- 저장 위치: 클라이언트(브라우저) 또는 서버
- 수명: 캐시 설정에 따라 다름. 특정 시간 이후 만료되거나 수동으로 삭제될 수 있음.
- 사용 예: 웹 페이지 리소스(CSS, JS, 이미지) 저장, 데이터베이스 쿼리 결과 캐싱, 이중화 서버 간 동기화
- 장점: 빠른 데이터 접근, 서버 부하 감소, 네트워크 트래픽 감소
- 단점: 캐시 일관성 문제(변경 사항 반영 지연), 저장 공간 사용
비교
특징 | 쿠시 | 세션 | 캐시 |
저장 위치 | 클라이언트(브라우저) | 서버 | 클라이언트(브라우저) 또는 서버 |
수명 | 설정된 시간까지 | 일정 시간 동안 활동 없으면 만료 | 설정된 시간까지 |
사용 예 | 로그인 상태 유지, 설정 | 로그인 상태, 장바구니 정보 | 웹 리소스, DB 쿼리 결과 |
장점 | 서버 부담 감소 | 보안성 높음 | 빠른 데이터 접근, 서버 부하 감소 |
단점 | 보안 취약성, 용량 제한 | 서버 메모리 사용 증가 | 일관성 문제, 저장 공간 사용 |
'Frontend > HTTP 통신' 카테고리의 다른 글
[axios] defaults 설정 방법 및 옵션 (0) | 2023.09.14 |
---|---|
RESTful API란? (+예시) (0) | 2023.09.12 |
다양한 형태의 axios (0) | 2023.07.18 |
axios post 파라미터 전달 방법 (0) | 2023.05.25 |
List, Array 형태 데이터 파라미터로 Spring 서버와 ajax 통신 (0) | 2022.05.08 |