웹에서 사용되고, 뭔가 상태를 저장한다는 것으로 알고는 있는데
셋이 각각 어떻게 다르고, 어디에 쓰이는지 알아본다.
쿠키는 웹 사이트를 방문하고 이용할 때, 브라우저(PC)에 저장되는 정보이다.
그러나 쿠키에는 한계가 있다.
사용자가 임의로 고치거나 지울 수 있고, 심지어 남이 훔쳐보거나 도둑질을 하기도 쉽다.
민감하거나 중요한 정보를 쿠키에 저장해두기는 불안하다.
세션은 서버에 저장되는 정보이다.
쿠키에 저장하기 곤란한 정보들은 세션에서 저장한다.
세션을 사용하는 웹사이트에 접속하면, 서버는 사용자를 구분하기 위한 세션ID(임시 키) 를 브라우저에 보내서 쿠키로 저장하도록 한다.
다시말하면 서버가 보관중인 사용자의 정보가 누구 것인지 확인할 수 있는 임시 키(세션ID) 를 브라우저에게 전달하면 브라우저가 이것을 쿠키에 저장한다.
(세션)사용자의 중요한 정보들은 서버의 메모리나 데이터베이스에 저장된다.
브라우저가 웹사이트의 페이지들에 접속할 때마다, http 요청에 이 키가 담긴 쿠키를 실어서 전달하고, 서버는 그 키를 보고 사용자를 인식해서 사용자의 정보들을 가공해서 응답으로 보내주는 것이다.
예를 들면, 네이버에 한 번 로그인 한 다음, 네이버의 다른 페이지들을 이용할 때마다 새로 로그인 할 필요가 없는 건 쿠키와 세션의 조합을 통해 사용자가 네이버에 로그인해있다는 걸 인지하고 있기 때문이다.
쿠키를 모두 지우고, 새로고침을 누르면 네이버 로그인이 해제되어 있다.
서버에서는 세션에 사용자의 로그인 정보를 갖고 있지만, 그게 사용자의 것이라는 걸 증명할 세션 아이디가 쿠키 보관함에서 지워졌기 때문이다.
쿠키는 로그인 창의 아이디를 자동완성하거나, 공지 메시지를 하루 안 보기 하거나, 쇼핑몰 사이트에서 로그인 안 한 상태로 물건을 장바구니에 담는 등 사용자의 편의를 위하되, 지워지거나 조작되거나 가로채이더라도 큰 일이 없을 수준의 정보들을 브라우저에 저장하는데 사용된다.
세션은 사용자나 다른 누군가에게 노출되어서는 안 되는, 서비스 제공자가 직접 관리해야 할 정보들을 서버 안에서 저장/관리하는 것이다.
웹 개발자들은 웹사이트를 만들 때, 어떤 정보를 쿠키에 저장할지 세션에 저장할지 적절한 판단을 내릴 수 있어야 한다.
쿠키로 노출시켜서는 안 될 정보들이 있고, 그렇다고 세션을 남발하면 접속자가 많을 때 서버에 부하가 걸리게 된다.
캐시의 개념은 웹 뿐만 아니라 컴퓨터의 메모리 부분이나 안드로이드 등 다양한 곳에서 쓰이는데
거의 공통적인 의미로, "가져오는데 비용이 드는 데이터를 한 번 가져온 뒤에는 임시로 저장해두는 것" 이다.
웹 캐시는 이미지 등의 정보를 불러올 때 데이터 사용량도 발생하고 시간도 들기 때문에, 사용자가 여러 번 방문할법한 사이트에서는 한 번 받아온 데이터를 사용자의 컴퓨터 또는 중간 역할을 하는 서버에 저장해두는 것이다.
출처) https://www.youtube.com/watch?v=OpoVuwxGRDI
by 얄팍한 코딩사전