열심히 살아나갈 사람
article thumbnail

세션(Session)

세션은 웹 사이트에 접속한 사용자를 서버측에서 식별하기 위해 사용하는 메커니즘입니다. HTTP는 기본적으로 상태를 유지하지 않는(stateless) 프로토콜이기 때문에, 사용자의 상태 정보를 서버측에서 유지하기 위해 세션이 필요합니다.

사용자가 웹 사이트에 로그인하면, 서버는 사용자의 ID와 같은 정보를 세션에 저장하고, 해당 세션에 대한 고유한 ID인 세션 ID를 생성하여 사용자에게 전달합니다. 이후 사용자가 요청을 보낼 때마다 해당 세션 ID를 포함시켜 서버에 전달하고, 서버는 이를 통해 사용자를 식별하고 상태 정보를 유지합니다.

세션은 로그인 상태 유지, 쇼핑 카트 정보 저장, 사용자별 페이지 커스터마이징 등 다양한 목적으로 사용됩니다. 세션은 사용자가 로그아웃하거나 일정 시간 동안 활동이 없는 경우 만료되며, 세션 정보는 서버에서 삭제됩니다.

쿠키(Cookie)

쿠키는 웹 사이트가 사용자의 웹 브라우저에 저장하는 작은 텍스트 파일입니다. 이 파일은 사용자의 기기를 식별하거나 사용자의 선호 설정을 저장하는 등 다양한 목적으로 사용됩니다.

HTTP 프로토콜의 상태 유지하지 않는 특성 때문에, 쿠키는 서버가 사용자의 이전 요청을 기억하는 데 도움이 됩니다. 예를 들어, 사용자가 로그인하면 서버는 쿠키에 사용자의 ID를 저장하고, 사용자가 다음에 요청을 보낼 때 이 쿠키를 읽어 사용자를 식별합니다.

쿠키는 로그인 정보, 방문한 페이지의 기록, 사용자의 사이트 선호 설정(예: 언어 설정), 장바구니 정보 등을 저장하는 데 사용될 수 있습니다. 쿠키는 사용자의 웹 브라우저에 저장되므로, 사용자는 쿠키를 언제든지 확인하거나 삭제할 수 있습니다. 또한, 사용자는 웹 브라우저의 설정을 변경하여 쿠키의 사용을 제한하거나 차단할 수 있습니다.

쿠키는 사용자 경험을 개선하는 데 도움이 되지만, 개인정보 보호와 관련된 이슈도 있습니다. 쿠키를 통해 사용자의 행동을 추적하거나 개인정보를 수집하는 경우가 있으므로, 웹사이트는 쿠키를 사용할 때 사용자의 개인정보를 적절히 보호해야 합니다.

세션(Session)과 쿠키(Cookie)의 차이점

세션과 쿠키는 모두 웹사이트에서 사용자를 식별하고 정보를 저장하는 데 사용되지만, 그 방식과 사용되는 공간에 차이가 있습니다.

  1. 저장 위치: 쿠키는 클라이언트의 브라우저에 저장되는 반면, 세션은 서버에 저장됩니다.
  2. 보안: 세션은 서버에 저장되기 때문에 쿠키에 비해 보안성이 높습니다. 쿠키는 클라이언트에 저장되므로 변조되거나 탈취될 위험이 있습니다.
  3. 생명 주기: 쿠키에는 만료 기간을 설정할 수 있어, 만료 기간이 지나면 자동으로 삭제됩니다. 세션은 클라이언트가 브라우저를 닫을 때 삭제되거나, 서버에서 세션을 만료시킬 수 있습니다.
  4. 데이터 용량: 쿠키는 클라이언트에 저장되므로 용량 제한이 있습니다. 보통 4KB까지 저장 가능합니다. 세션은 서버에 저장되므로 용량 제한이 쿠키보다 큽니다. 하지만 너무 많은 세션 정보를 저장하면 서버의 부하가 커질 수 있습니다.
  5. 서버 부하: 세션 정보는 서버에 저장되므로, 사용자가 많아지면 서버의 메모리를 많이 차지하게 됩니다. 반면, 쿠키는 클라이언트에 저장되므로 서버의 부하를 덜 수 있습니다.

이렇게 각각의 특성에 따라 세션과 쿠키는 적절한 상황에서 선택적으로 사용되어야 합니다. 사용자의 개인정보와 같은 민감한 데이터는 쿠키보다는 세션에 저장하는 것이 좋으며, 반면에 사용자의 선호 언어와 같은 비교적 덜 민감한 정보는 쿠키에 저장할 수 있습니다.

'Web Security' 카테고리의 다른 글

Session의 흐름과 Session관리의 정리  (0) 2023.12.08
인증(Authentication)과 인가(Authorization)  (0) 2023.11.26
JWT(JSON Web Token)  (0) 2023.11.26
profile

열심히 살아나갈 사람

@쿼리_

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!