쿠키와 세션 그리고 캐시에 대해서 알아보도록 할것이다.
셋의 공통점은 웹에서 사용되고 뭔가를 저장하는것이다.
쿠키
일단 사용자가 어떤 웹사이트를 들어가게 되면 내가 어딜 방문을 했는지, 뭘 검색을 했었는지, 어떤 아이디와 패스워드로 로그인을 했는지 등 수많은 작업을 하게 된다.
쿠키는 이런것이다.
내가 방문하고 내가 검색한 기록들을 내 컴퓨터에 저장을 해두는 것이다.
그리고 좀더 정확하게 말하면 내 컴퓨터에 있는 브라우저에 저장을 하는것이다.
브라우저 관련해서는 아래 참고 사이트를 확인해보도록 한다.
세션
하지만 쿠키에는 한계가 있다.
내 브라우저에 저장을 하다보니 보안 측면에서도 약하고 쉽게 지워지거나 변경되기도 한다.
내 민감한 정보들도 쿠키에 저장을 해두기엔 예민하고 그러고싶지 않을것이다.
이럴 경우엔 내가 방문한 사이트에서 좀더 강한 보안으로 그 정보들을 지켜주게된다.
이것을 세션이라고 한다.
세션은 내가 방문한 페이지의 서버에서 내 기록을 관리해주고 저장해주는것이다.
서버에는 수많은 사용자가 저장을 하게 되면 뭐가 누구의 데이터인지 구분을 하기 위해서 키를 만들어 주고 그 키는 브라우저에서 쿠키로 저장을 하게 된다.
서버에 저장을 할때 역시 키를 http 통신으로 함께 보내어서 서버에 저장을 하고 그에 대한 응답을 가공해서 response로 보내준다.
한번 웹사이트에 로그인을 했을때 다음에 방문할때도 로그인이 되어있는것은 이 쿠키와 세션이 도와주기에 가능한것이다.
만약 인터넷도구에서 모든 기록을 삭제하고 쿠키를 초기화 하면 사이트 재 방문시 로그인 하라는 메세지를 받게 될 것이다.
서버에서는 자기 자신을 증명하는 키가 저장되어있지만 내 쿠키에서 그 저장된 값이 사라져서 그렇다.
개발자들은 개발을 할때 쿠키와 세션에 어떤값을 저장할지 잘 선택해야한다.
쿠키가 많아지면 보안상 위험이 있을수 있고 세션이 많을경우엔 서버의 부하가 걸리기에 신중히 경험이 필요하다.
캐시
저장하는 의미는 비슷하나 좀 다른 의미인 캐시도 존재한다.
웹 뿐 아니라 컴퓨터의 메모리, 안드로이드 등 다양한 곳에서 쓰이고
데이터를 가져오기 위해 비용이나 시간이 많이 소모되는것을 한번 가져오면 그것을 임시로 저장을 해두는 공간이다.
셋다 저장하기 용도로 사용되는건 맞으나 각 사용처에 따라 훌륭하거나 좀 부족한 코드가 될수 있으니 잘 이해를 해두는것이 필요하다.
참고 사이트
https://thenicesj.tistory.com/156
'IT > Knowledge' 카테고리의 다른 글
재귀 함수란? (recursive function) (36) | 2022.03.25 |
---|---|
동기 / 비동기 프로그래밍 (43) | 2022.03.24 |
프로그램 / 프로세스 / 스레드 (58) | 2022.03.22 |
Internet Explorer 가 사라지고 있는 이유 (51) | 2022.03.21 |
Browser란? (50) | 2022.03.20 |
댓글