쿠키, 세션, 캐시 각각의 개념 / 차이점

방충림·2023년 3월 13일
5

CS

목록 보기
9/26
post-thumbnail

웹에서 사용되고, 뭔가 상태를 저장한다는 의미로 어렴풋이 알고 있는 사람이 많다. 나 또한 그랬다. 셋이 각각 어떻게 다르고 어디에 쓰이는지 간략하게 정리해보았다.

쿠키

쿠키란?

쿠키는 사이트를 방문하고 이용할 때, 내 브라우저에 저장되는 내용들로 일종의 스탬프같은 것이다. 브라우저는 내 컴퓨터에 있는 것이니 내가 갖고 있는 것이고, 사이트를 이용할 때마다 보여주어 맞춤형 서비스를 이용할 수 있기게 해준다. 가령 쿠키는 로그인창의 아이디를 자동완성하거나, 공지 메시지를 하루 안 보기 하거나, 쇼핑몰 사이트에서 로그인 안 한 상태로 물건을 장바구니에 담는 등 기능이 그것이다.

쿠키의 한계

하지만 쿠키에는 한계가 있다. 쿠키는 수정되거나, 삭제될 수 있고 심지어 남이 훔쳐보거나 도둑질 하기도 쉽다. 때문에 민감하거나 중요한 정보를 쿠키에 담아서 저장하면 위험하기 때문에, 지워지거나 조작되거나 가로채더라도 큰 일이 없는 수준의 정보들만 쿠키로서 브라우저에 저장된다.

세션

세션이란?

쿠키에 저장할 수 없는, 그러니까 사용자나 다른 누군가에게 노출되어서는 안 되는, 서비스 제공자가 직접 관리해야 할 중요한 정보들은 세션으로서 서버의 메모리나 데이터베이스에 저장되고 다루어진다.

세션을 사용하는 사이트에 접속하면 서버에서는 사용자를 구분하기 위한 기한이 짧은 임시 키 하나를 브라우저에 보내서 쿠키에 저장한다.
그리고 브라우저가 이 사이트의 페이지들에 접속할 때마다. http 요청에 이 키를 실어서 전송하고 서버는 그 키를 보고 누구인지 인식해서 그 사람에게 해당하는 정보를 가공해서 보내주는 것이다.

세션의 예시

이에 대한 예로서 우리가 네이버에 한번 로그인 하고 사이트 내의 여러 페이지를 돌아다녀도 로그인이 계속 유지되는 것은 쿠키와 세션의 조합으로 로그인해있다는 걸 네이버 서버가 인지하고 있기 때문이다.

해당 네이버 쿠키를 찾아 지우고 새로고침을 누르면 로그인이 해제되는 것을 볼 수 있다. 서버에서는 세션의 나의 로그인 정보를 그대로 갖고 있지만, 그걸 내꺼라고 중명할 세션 아이디가 쿠키보관함에서 지워졌기 때문이다.

웹 개발자들은 사이트를 만들 때 이 정보는 쿠키에 저장할 지 세션에 저장할지 적절한 판단을 내릴 수 있어야한다.
쿠키로 노출시켜서는 안 될 정보도 있고, 그렇다고 세션을 남발하면 접속자가 많을 때 서버에 부하가 걸리기 때문이다.


캐시

캐시란?

캐시라는 개념은 웹 뿐만 아니라 컴퓨터의 메모리 부분이나 안드로이드 등 다양한 곳에서 쓰이는데 거의 공통적인 의미로, 가져오는데 비용이 드는 데이터를 한 번 가져온 뒤에는 임시로 저장해두는 것이다.

서버에서 이미지 등의 정보를 불러올 때, 데이터 사용량도 발생하고 시간도 들기 때문에 웹 캐시는 사용자가 여러 번 방문할 법한 사이트에서는 한 번 받아온 데이터를 사용자의 컴퓨터 또는 중간 역할을 하는 서버에 저장해두는 것이다.



참고문헌 : 얄팍한 코딩사전

profile
최선이 반복되면 최고가 된다.

0개의 댓글