TIL-38. 쿠키, 세션, 캐시에 대해 알아보자.

solarrrrr·2022년 1월 6일
0

Today I Learned

목록 보기
38/74
post-thumbnail

쿠키(Cookie)

쿠키란 로컬 환경에 저장되는 데이터 저장소를 뜻한다.

쿠키에는 주로 자동 로그인 유지 정보, 검색 키워드 정보나 팝업 보지 않기,
쇼핑 카트나 위시 리스트 저장, 특정 웹사이트 방문 이력 등에 관한 정보를 담겨 있다.

이를 통해 매번 로그인 할 필요 없이 최초 한 번만 로그인을 하면
해당 정보를 저장해 두고 이를 통해 로그인을 유지할 수 있고
그밖에 다양한 정보들을 활용할 수 있다.

쿠키는 만료일을 지정할 수 있는데,
만일 만료일이 지정되지 않았다면 브라우저를 종료하면 정보는 날아가게 되며
만료일을 지정한다면 브라우저를 종료하더라도 사용자의 상태를 유지할 수 있다.

또 쿠키에는 여러 제약 조건이 있는데 아래를 참고하자.

  • 클라이언트는 총 300개의 쿠키를 저장할 수 있음
  • 하나의 도메인당 20개의 쿠키를 가질 수 있고 넘을 경우
    가장 적게 사용되는 것부터 삭제됨
  • 하나의 쿠키는 4KB(4096byte) 저장 가능

쿠키는 세션에 비해 내 컴퓨터에 저장된 데이터를 활용하니 속도가 빠른 장점이 있지만
정보 탈취나 위, 변조 등 보안에 취약하다.

위코드 출입 카드키를 내 가방에 넣어뒀다면, 가방이 쿠키라고 볼 수 있다.
제3자가 내 가방을 뒤져 개인정보와 출입 권한을 가진 내 카드키를 탈취하면
위코드로 제3자가 들어갈 수 있다.


세션(Session)

세션이란 서버 환경에 저장되는 데이터 저장소를 뜻한다.
쿠키와 비슷한 방식으로 사용되지만 저장소가 서버이다.

세션도 마찬가지로 로그인 등의 반복 작업을 다시 하지 않도록 도와주며
서버에 저장되기에 쿠키보다는 상대적으로 보안에 있어 덜 취약한 편이지만
서버를 통하므로 쿠키에 비해 속도가 느리다는 단점이 있다.
(요즘엔 크게 느리지 않다고..)

세션의 경우 클라이언트 구분과 접속 유지 등의 동작을 위해
세션 ID를 발급하는데 세션 ID는 보통 쿠키에 저장한다.

쿠키에 비해 상대적으로 보안이 덜 취약하지만 안전한 것은 아니다.
웹 관리자의 세션 ID를 탈취하는 경우가 생기기도 하는데 이 경우를 살펴보면,

세션 ID 탈취 후 쿠키값을 관리자의 세션 ID로 변경하고 권리자 권한을 이용한다.

이런 문제를 예방하려면 세션에 로그인 했을 때의 IP를 저장해서
페이지 이동 시마다 현재 IP와 세션 IP, 브라우저 정보 등이 같은지
유효성을 검증하는 방법이 있다.

위코드에 지문인식 혹은 FACE ID 같은 출입 인증기기가 설치된다면
이게 세션의 예가 될 수도 있겠다.
내 출입 정보 및 개인 정보를 출입 인증기기가 저장하고 있어서
세션 ID인 내 얼굴이나 지문을 통해 인증하고 들여보내줄 것이다.


캐시(Cache)

용량이 큰 이미지나 데이터 등을 임시로 저장소에 보관해 두었다가
필요시 꺼내 쓰는, 리소스 파일들의 임시 저장소를 말한다.

예를 들어 어떤 사이트를 불러올 때 사진이나 배너, css, js 등의
데이터들을 매번 사이트 들어갈 때마다 불러오면
속도 측면에서도 그렇고 데이터의 낭비가 일어나게 되는데

미리 클라이언트에 저장해 두고 꺼내면 속도도 빠르고 낭비를 막을 수 있다.
(서버를 거치지 않고 pc에서 바로 로드하기 때문)

그래서 다시 사용될 데이터들을 빠르게 접근 가능한 저장소에 저장한다.

profile
몰입

0개의 댓글