
쿠키 및 세션
HTTP 무국적자 : 통신 종료 후 상태를 유지하지 않습니다. 이를 보장하는 기술은 쿠키와 세션입니다.
쿠키
- 쿠키는 클라이언트(브라우저)에 로컬로 저장되는 키와 값이 있는 파일입니다.
- 쿠키는 서버가 사용자의 웹 브라우저에 저장하는 데이터입니다.
- 쿠키 데이터 형식은 키와 값으로 구성되며 문자열 형식입니다.
- 다른 브라우저는 다른 쿠키를 저장합니다
쿠키는 서버가 서버를 대신하여 이 정보를 웹 브라우저에 저장하고 사용자의 요청과 함께 전송함으로써 사용자를 식별할 수 있게 합니다.
쿠키의 목적
- 세션 관리: 로그인, 사용자 닉네임, 접속시간, 장바구니 등 서버가 알아야 할 정보를 저장합니다.
- 개인화: 사용자에 따라 그 사람에게 적합한 페이지가 표시될 수 있습니다.
- 박해: 사용자 행동 및 패턴 분석 및 기록
쿠키가 존재하기 때문에 여러 페이지를 탐색할 때마다 로그인하지 않고도 사용자 정보를 관리할 수 있습니다.
쿠키의 단점
- 방문한 웹 사이트에 대한 정보 및 개인 정보가 기록되기 때문에 개인 정보가 침해될 가능성이 있습니다. 이를 해결하기 위해 웹 브라우저 자체에 쿠키 거부 기능이 있습니다. 이러한 쿠키의 거부가 웹 브라우저에 설정되어 있는 경우, 쿠키의 원래 목적인 웹 브라우저와의 연결을 유지하는 기능을 수행하지 못할 수 있습니다.
- 서버가 아닌 사용자에게 상주하기 때문에 마음대로 수정하거나 삭제할 수 있고 가로채기 쉽습니다. 따라서 민감하거나 중요한 정보를 쿠키에 포함시키는 것은 위험합니다.
세션(회의)
- 사용자 정보 파일 서버에서 관리
- 클라이언트가 요청을 보내면 서버는 클라이언트에게 고유한 ID인 세션 ID를 부여합니다.
- 사용자에 대한 정보를 서버에 저장하기 때문에 보안상 좋습니다. 그러나 사용자 수가 증가함에 따라 서버 리소스를 점유하게 됩니다.
- 웹 브라우저는 서버에 연결하고 브라우저가 닫힐 때까지 인증 상태를 유지합니다.
- ID, 닉네임 등의 정보를 세션에 저장해 두면 매번 요청할 때마다 DB에 접근할 필요가 없어 효율적이다.
세션 기능
- 웹 컨테이너의 상태를 관리하기 위해 웹 서버에 정보를 저장합니다.
- 웹 서버에 저장된 쿠키(= 세션 쿠키)
- 브라우저가 닫히거나 서버에서 세션이 삭제되면 삭제되기 때문에 쿠키보다 더 안전합니다.
- 저장되는 데이터에는 제한이 없습니다.
- 각 클라이언트에 고유한 세션 ID를 할당합니다.
- 클라이언트는 세션 ID로 식별되며 각 클라이언트의 요구에 맞는 서비스가 제공됩니다.
세션 순서
- 클라이언트 요청(사용자가 웹사이트에 액세스)
- 서버는 쿠키, 즉 액세스하는 클라이언트의 요청 헤더 필드에서 클라이언트가 해당 세션 ID를 보냈는지 여부를 확인합니다.
- 세션 ID가 없으면 서버에서 세션 ID를 만들어 클라이언트로 보냅니다.
- 서버에서 클라이언트로 전송되는 세션 ID는 쿠키를 이용하여 서버에 저장됩니다.
- 클라이언트가 다시 연결되면 이 쿠키를 사용하여 세션 ID 값을 서버로 보냅니다.
요약
쿠키
- 사용 편의성을 위해
- 삭제할 수 있는 정보를 브라우저에 저장하며 취약한 보안에도 큰 문제가 되지 않음
회의
- 서버에서 처리합니다.
- 사용자나 다른 사람에게 제공되어서는 안 되는 정보는 서비스 제공자가 세션으로 직접 관리합니다(대부분의 경우 서버의 부하).
쿠키는 사용자 편의를 위해 사용됩니다. 나. 자동완성 기능을 제공하거나 일주일간 팝업을 띄우지 않으나 삭제, 변조가 가능한 정보, 보안성이 낮은 정보를 저장하기 위해 사용합니다.
그리고 사용자나 다른 누구에게도 노출되어서는 안 되는 중요한 정보는 서버에서 세션으로 취급됩니다.
쿠키에는 공개하면 안 되는 정보가 있고 세션에 과부하를 주어 서버에 과부하를 주기 때문에 정보를 쿠키에 저장할 것인지 세션에 저장할 것인지를 정확하게 판단하는 것은 웹을 설계할 때 필요합니다.
참조

