[CS] 캐시 & 세션 & 쿠키 차이

·2024년 1월 21일

해당 포스트는 학습한 후 기억력 테스트 느낌으로 머릿속에 있는 걸 꺼내 적는 용도이기에 잘못된 내용이 있을 수 있습니다. 언젠가.. 정답과 비교후에 수정 예정

네트워크는 작년 수업으로 열심히 듣긴 했지만 시험을 위한 단기성 암기 비중이 높았기에 대충 알고 넘어갔던 부분들이 존재했다. 이번에 CS 스터디를 하면서 내가 놓쳤던 부분들을 다시 학습할 수 있는 좋은 기회를 가지게 되었다.

Intro

먼저 캐시와 세션, 쿠키 모두 HTTP의 Stateless라는 특징의 한계를 해결하기 위한 방법들이라고 공통점을 정리할 수 있겠다. HTTP 통신과정에서 상태가 저장되지 않는 특성으로 인해 서버의 역할을 줄일 수 있었지만 몇몇 상황에 대해서는 어느정도의 '저장' 기능이 필요했다. 가장 대표적인 예로 로그인과 같이 회원 정보를 공유해야하는 상황이 있다. 요즘은 로그인 관리를 대부분 토큰으로 진행하지만 그 이전엔 세션과 쿠키가 있었다.

쿠키는 어떠한 상태(정보, 데이터)를 클라이언트가 저장하는 것을 뜻한다. 동작방식은 다음과 같다.
1. C -> S 요청
2. S -> C Set Cookie(헤더) + 응답
3. C -> S 다음 요청부턴 쿠키와 함께 요청
4. S -> C 해당 요청에 맞는 응답

Session

세션은 어떠한 상태(정보, 데이터)를 서버가 저장하는 것을 뜻한다.
동작방식은 다음과 같다.
1. C -> S 요청
2. S -> C 세션 ID를 Set Cookie(헤더)에 담아 함께 응답
3. C -> S 해당 ID와 함께 요청
4. S -> C 해당 요청에 맞는 응답

내가 대충 이해하고 있다가 정확히 알게 된 정보는 세션 방식이 쓰일 때 일반적으로 쿠키과 같이 쓰인다는 것


Cache

캐시는 솔직히 말하면 쿠키와의 차이점을 크게 인지하지 못하고 있었던 것 같다. 방식의 차이라고 생각하고 있었는데 그런 관점과는 달랐다. 쿠키와 캐시는 무엇을 저장하냐에서 가장 큰 차이를 가진다.

캐시 - 이미지, HTML, CSS, JS 파일 등 웹 페이지를 구성하는 정적 파일 저장
쿠키 - 사용자 식별 정보, 세션 ID, 로그인 데이터 등 사용자와 관련된 정보를 저장

이외에도 목적, 보안 등 세세하게 차이가 있긴 하지만 무엇을 저장하는지 알고 있으면 저절로 이해가 되는 차이점들이기에 해당 포스트에서는 생략한다.

profile
말 배우는 감자

0개의 댓글