쿠키(cookie)와 세션(session)의 차이

THINKTO·2023년 6월 25일

오늘은 개발자 면접 시 자주 물어보는 쿠키와 세션의 차이에 대해 알아보려고 한다.

쿠키란?

쿠키는 웹사이트에 접속할 때 생성되는 임시 데이터 파일입니다.
쿠키의 형태는 key와 value로 이루어진 String 형태로 이루어져 있습니다.

브라우저마다 저장되는 쿠키는 다릅니다.(크롬에서 생성 된 쿠키는 익스플로어에선 사용할 수 없습니다.)
서버에서는 브라우저가 다르면 다른 사용자로 인식합니다.

쿠키는 서버를 대신해서 정보들을 웹 브라우저에 저장하고 사용자가 요청할 때 그 정보를 함꼐 보내서 서버가 사용자를 식별할 수 있도록 합니다.

📌쿠키의 사용목적
쿠키는 주로 3가지 목적을 위해 사용됩니다.
1.세션관리 로그인,사용자 닉네임,접속 시간,장바구니 등의 정보를 저장합니다.
2.개인화 사용자에 맞는 적절한 정보를 노출합니다.
3.트래킹 사용자의 행동과 패턴을 분석하고 기록합니다.

📌쿠키가 사용되는 예시
쿠키가 있기 때문에 여러 페이지를 이동할 떄마다 로그인을 유지할 수 있습니다.
쿠키가 없다면 계속하여 파라미터로 로그인 정보를 넘겨줘야 합니다.

  • ID 저장, 로그인 상태 유지
  • 일주일간 다시보지 않기
  • 최근 검색한 상품들을 광고에서 추천
  • 쇼핑몰 장바구니 기능

📌쿠키의 단점
1.방문했던 웹사이트에 대한 정보 및 개인정보가 기록되기 때문에 개인정보 노출에 대한 우려가 있습니다.

2.서버에 저장되는 것이 아닌 사용자에 저장되기 때문에, 임의로 고치거나 지울 수 있고 가로채기도 쉬워 보안에 취약해집니다.

이러한 단점들을 보완해주는 것이 세션입니다.

📌세션의 특징
세션 아이디는 웹 브라우저 당 1개씩 생성되어 웹 컨테이너에 저장되며 브라우저 종료 시 소멸됩니다.
로그인한 사용자에 대해서만 세션을 생성하는 것이 아니라
로그아웃하면 새로운 사용자로 인식해서 새로운 세션이 생성됩니다.
(참고로 쿠키는 내 웹 브라우저에 저장된 것이기 때문에 로그아웃 유무와 관계없이 삭제하지 않으면 유지됩니다.)

아이디,닉네임 등의 정보를 세션에 담아두면 요청이 있을 때 마다,DB에 접근할 필요가 없어 효율적입니다.

🎈간단 요약

쿠키는 자동완성이나, 일주일간 보지 않기 등 사용자의 편의를 위하는 것이지만
지워져도 되고, 조작되거나 가로채이더라도 큰 지장이 없는 수준의 정보들을 저장하는데 사용합니다.

그리고 다른 사용자나 다른 누군가에게 노출되면 안되는 중요한 정보들은 세션으로 서버 안에서 다뤄집니다.

쿠키는 노출시키면 안 될 정보들을 저장하면 안되고 세션을 남발하면 서버에 부하를 줄 수 있으므로 적절한 판단을 하여 사용을 해야 한다.

이렇게 오늘은 쿠키와 세션의 차이에 대한 포스팅을 마치겠습니다.

참고 : https://devuna.tistory.com/23

0개의 댓글