Study/📦 IT 지식

#4. 세션, 쿠키, 캐시는 왜 매번 헷갈리는지

juwon.ryu 2023. 8. 16. 15:50
이건 세션이 아니라 쿠키에 저장하는 걸로 처리해야해요.

세션과 쿠키, 분명 두 개가 다른 것은 알고 있었는데 매번 헷갈립니다.  

그래서 각각의 특징과 차이점에 대해서 명확하게 정리를 해보고 더불어 캐시에 대해서도 알아보겠습니다.


우선, 세션과 쿠키는 모두 웹 통신 간 유지하려고 하는 정보를 저장하기 위해 사용한다고 합니다.

주로 로그인 정보 저장에 사용한다는 것은 동일하나 저장 위치, 만료 시점 등의 차이가 있어 정리해보겠습니다.

 

세션(Session) 이란?

사용자의 정보를 클라이언트(사용자 PC)에 저장하는 것이 아닌 서버에 저장합니다.

세션은 클라이언트가 요청하면 해당 정보로 세션을 갱신 후 새로운 sessionid 를 발급하여 응답하고,

클라이언트는 사용자의 sessionid를 가지고 서버에 요청하면 서버도 사용자로 식별한다고 합니다.

 

세션의 유효기간은 브라우저가 종료 시 입니다. (물론 그 전이어도 세션의 브라우저를 닫게되면 클라이언트에서 sessionid를 삭제하고 서버에서도 세션을 제거합니다. 정보가 계속 남아있는 것이 아니며, 브라우저 종료와 함께 정보가 삭제되니 보안성에도 좀 더 강하다는 장점을 지닙니다.

 

물론 세션이 브라우저를 종료하지 않는 이상 무조건 유지되는 것은 아닙니다. 은행이나 카드사의 경우는 보안을 위해 기본적으로 세션의 유효기간을 짧게 설정하는데요. 그래서 은행이나 카드사 웹 페이지에 접속했다가 잠깐 자리를 비운 후 이용하려고 하면 갑자기 '세션이 만료되었습니다. 다시 로그인해주세요' 라는 문구가 뜨기도 합니다. 

 

 

쿠키(Cookie) 란?

사용자의 정보가 클라이언트에 저장됩니다. 서버에 저장하는 것이 아니기 때문에 서버 과부화에 영향을 미치지 않습니다.

웹 페이지에 로그인을 할 때 하단에 '로그인 유지하기'라는 체크박스가 있는데, 이걸 체크 후 로그인을 하게되면 로그인 정보가 쿠키에 저장이 되어 있게 됩니다. 그래서 사용자는 다음 번에 로그인을 할 때 ID와 비밀번호를 일일이 입력하지 않아도 쉽게 로그인 할 수 있게 됩니다.

 

쿠키의 유효기간은 사용자가 설정할 수 있습니다. 물론 삭제도 가능합니다. 브라우저를 껐다가 다시 켜도 그 정보가 남아있습니다. 그래서 로그인 외에도 팝업 창 하단에 '일주일간 다시 보지 않기' 또는 쇼핑몰의 '장바구니' 기능들을 모두 쿠키를 활용하여 저장해둔다고 합니다.

(쿠키의 유효기간을 한 달로 한다면 '한 달 간 다시 보지 않기'라는 팝업 문구도 있을 수 있겠네요. 단, 마케팅 상 불필요할 것 같습니다.)

 

브라우저의 설정 > 도구 더보기 > 인터넷 사용 기록 삭제를 보면 사용자가 직업 쿠키 및 기타 데이터 삭제도 가능한 것을 알 수 있습니다.

 


 

세션과 쿠키가 사용자의 로그인 정보를 저장하는 데에 주로 사용하는 반면 캐시는 조금 다릅니다.

 

캐시(Cache) 란?

사용자가 자주 사용하는 데이터 저장해두는 임시 저장소 역할을 합니다.

웹 페이지를 열었을 때 서버에서 데이터를 가져오는 것이 아닌 임시 저장소인 캐시에서 가져오기 때문에 로딩 속도가 빠르다는 장점이 있습니다. 

 

그래서 서버에는 수정된 데이터가 저장되어 있더라도 웹 페이지에서 수정 사항이 바로 반영되지 않는 경우는 캐시가 이전 데이터를 저장해두고 있기 때문입니다. 서버에 저장된 데이터를 업데이트 하려면 캐시 업데이트가 필요한거죠.

 

사용자가 크게 차이를 못 느낄 수는 있지만, 매일 접속했던 사이트를 캐시 삭제 후 들어가게 되면 그 전보다 로딩이 조금 더 걸릴 수 있다고 합니다. (캐시에 저장되어 있는게 없기 때문입니다.)

 


쿠키와 세션이 헷갈릴 때도 있고 쿠키와 캐시가 헷갈린 적도 있었는데요.

이렇게 정리를 해보니 그 특징과 차이가 명확해졌습니다. 다음에는 개발자 분들이 하는 말도 더 제대로 알아들을 수 있을 것 같네요.

'Study > 📦 IT 지식' 카테고리의 다른 글

#3. 크로스 브라우징이란?  (0) 2023.08.16
#2. 적응형 웹, 반응형 웹?  (0) 2023.08.15
#1. 메타 태그란?  (0) 2023.08.14