HTTP는 상태를 저장하지 않는 프로토콜이기 때문에 클라이언트가 누구인지 매번 확인해야하는 특성이 있습니다.
쿠키와 세션은 이를 보완하기 위해 사용되는데, 이 두가지의 특징이 뭔지 정확히 짚고 넘어가야 다음번에 봤을 때 헷갈리지 않으니 정리해보고 갑자기 나온 캐시라는 단어까지 이해해봅시다.
1. 쿠키(Cookie)
정의 :
- 웹 서버에서 클라이언트의 웹 브라우저에 저장되는 작은 데이터 조각으로, 주로 이름-값 쌍의 형태를 가지며, 클라이언트와 서버 간의 상호 작용을 추적하고 사용자 상태를 유지하는 데 사용됨.
특징 :
- 클라이언트 측에 저장됨.
- 사용자 상태 정보 유지하기 위해 사용됨.
- 클라이언트가 서버에 요청을 보낼 때, 해당 서버와 관련된 쿠키는 자동으로 요청에 포함되어 전송됨.
- 쿠키는 만료 날짜를 가질 수 있으며, 이를 설정함으로써 쿠키의 수명을 조절할 수 있음.
- 쿠키는 클라이언트 측에 저장되므로 보안 문제에 노출될 수 있음.
예시 :
- 웹 사이트에서 로그인 할 경우 "아이디와 비밀번호를 저장하시겠습니까?"
- 인터넷 쇼핑몰에서 장바구니에 담아두기 기능
- 팝업창의 사이드에 "이 창을 오늘 하루동안 띄우지 않기"
2. 세션(Session)
정의 :
- 서버 측에서 클라이언트의 상태 정보를 관리하고 유지하는 데 사용되는 메커니즘으로, 각 클라이언트에 대해 서버에 고유한 식별자를 할당하고 이를 통해 클라이언트의 상태를 유지함.
특징 :
- 서버 측에 저장됨.
- 사용자의 상태를 유지하고 다양한 요청 간에 정보를 공유하는 데 사용됨.
- 다양한 데이터 유형을 저장하고 다룰 수 있으며, 사용자 지정 가능한 기간 동안 데이터를 보유할 수 있음.
- 일정 기간 동안 유지되며, 클라이언트의 비활동 시간이 일정 기간 동안 지속되면 세션은 만료될 수 있음.
- 세션 데이터는 클라이언트에 저장되지 않으므로 쿠키와 비교하여 보안 측면에서 더 안전하지만 세션 식별자가 유출될 경우 보안 문제가 발생할 수 있으므로 적절한 보안 조치가 필요함.
예시 :
- 웹 사이트에서 로그인이 풀리지 않고 로그아웃 하기 전까지 유지됨
3. 캐시(Cache)
정의 :
- 데이터나 결과를 미리 저장해 두는 임시 저장 공간을 의미하고, 이 데이터는 이후에 동일한 요청이 발생할 때 다시 계산할 필요 없이 빠르게 제공됨.
특징 :
- 반복적인 요청에 대한 응답을 빠르게 제공하여 웹 페이지나 애플리케이션의 성능을 향상시킴.
- 반복적으로 전송되는 데이터를 캐시에 저장함으로써 네트워크 대역폭을 절약할 수 있음.
- 요청된 데이터가 캐시에 존재할 경우, 서버의 부하를 줄여줌.
- 데이터를 일정 기간 동안 저장하므로 데이터의 일관성을 유지하고 서버와 클라이언트 간의 동기화를 유지할 수 있음.
CDN (Content Delivery Network) :
- 전 세계에 분산된 서버를 통해 콘텐츠를 제공하며, 이러한 서버는 콘텐츠를 지역적으로 캐시하여 전송 시간을 단축하고 성능을 향상시킴.
**캐시는 읽기 전용 데이터에 적합함**
위와 같이 쿠키 / 세션 / 캐시를 알아봤습니다.
한번 공부 할 때 확실히 이해하고 넘어가야 다음에 헷갈리지 않고 다음 단계를 배울 수 있기 때문에 느리더라도 튼튼한 기초지식으로 성장할겁니다!
'개발노트' 카테고리의 다른 글
최종 팀 프로젝트(8) - 테스트코드 (0) | 2024.01.16 |
---|---|
최종 팀 프로젝트(7) - 네이버 소셜로그인 (0) | 2024.01.15 |
최종 팀 프로젝트(6) - 카카오 소셜로그인 (0) | 2024.01.13 |
최종 팀 프로젝트(5) - Builder와 Mapper (0) | 2024.01.10 |
최종 팀 프로젝트(4) - 커밋 안했을때 실수 돌이키기 (0) | 2024.01.09 |