카테고리 없음

cookie

쟤리 2024. 9. 19. 09:51
728x90
반응형
  • *쿠키(Cookie)**는 웹 브라우저에 작은 데이터 조각을 저장하는 데 사용되는 방법입니다. 서버와 클라이언트 간에 상태를 유지하거나 사용자 식별 정보를 저장하기 위해 사용됩니다. 쿠키는 주로 사용자 세션, 사용자 추적, 인증 상태를 관리하는 데 활용됩니다.

쿠키의 주요 특징

  1. 크기 제한: 쿠키는 하나의 도메인 당 약 4KB 정도의 데이터를 저장할 수 있습니다.
  2. 만료 기한 설정: 쿠키는 만료 기한을 설정할 수 있어, 일정 기간이 지나면 자동으로 삭제됩니다.
  3. 도메인별 격리: 쿠키는 생성된 도메인과 경로에서만 접근할 수 있습니다. 다른 도메인에서는 접근할 수 없습니다.
  4. 자동 전송: 쿠키는 설정된 도메인으로 HTTP 요청이 전송될 때마다 자동으로 서버에 전송됩니다.

쿠키 사용 방법

1. 쿠키 설정 (JavaScript)

브라우저에서 쿠키를 설정할 때는 document.cookie를 사용합니다.

// 쿠키 설정
document.cookie = "username=JohnDoe; path=/; expires=Fri, 31 Dec 2024 23:59:59 GMT; Secure; SameSite=Strict";

이 코드에서:

  • username=JohnDoe: username이라는 이름의 쿠키에 JohnDoe 값을 설정합니다.
  • path=/: 이 쿠키는 사이트의 모든 경로에서 사용 가능합니다.
  • expires: 쿠키의 만료 날짜를 설정합니다.
  • Secure: HTTPS 연결에서만 쿠키를 전송하도록 설정합니다.
  • SameSite: CSRF 공격 방지를 위해 쿠키의 SameSite 속성을 설정합니다.

2. 쿠키 가져오기

설정된 쿠키를 가져올 때도 document.cookie를 사용합니다.

js
코드 복사
// 쿠키 가져오기
const cookies = document.cookie;
console.log(cookies); // "username=JohnDoe; otherCookie=value"

이 코드는 모든 쿠키를 문자열로 반환하며, 각 쿠키는 ;로 구분되어 있습니다.

3. 특정 쿠키 값 가져오기

특정 쿠키 값을 가져오려면 문자열을 파싱해야 합니다.

js
코드 복사
// 특정 쿠키 값 가져오기
function getCookie(name) {
  const value = `; ${document.cookie}`;
  const parts = value.split(`; ${name}=`);
  if (parts.length === 2) return parts.pop().split(';').shift();
}

const username = getCookie('username');
console.log(username); // "JohnDoe"

4. 쿠키 삭제

쿠키를 삭제하려면 쿠키의 만료 날짜를 과거로 설정하면 됩니다.

js
코드 복사
// 쿠키 삭제
document.cookie = "username=; expires=Thu, 01 Jan 1970 00:00:00 GMT; path=/";

쿠키 속성

  • expires: 쿠키의 만료 날짜를 설정합니다. 만료 날짜를 지정하지 않으면 세션 쿠키로 간주되어 브라우저를 닫으면 삭제됩니다.
  • path: 쿠키가 적용될 경로를 지정합니다. 기본값은 쿠키가 생성된 경로입니다.
  • domain: 쿠키가 적용될 도메인을 지정합니다. 서브도메인에서도 사용하려면 명시적으로 설정해야 합니다.
  • Secure: HTTPS 연결에서만 쿠키가 전송되도록 설정합니다.
  • HttpOnly: JavaScript에서 쿠키에 접근할 수 없도록 설정합니다. XSS 공격 방지에 도움이 됩니다.
  • SameSite: CSRF 공격 방지를 위해 쿠키의 SameSite 속성을 설정합니다.
    • Strict: 첫 번째 파티 요청에만 쿠키를 전송합니다.
    • Lax: 대부분의 경우 쿠키를 전송합니다. 그러나 크로스 사이트의 일부 경우에는 제한됩니다.
    • None: 모든 상황에서 쿠키를 전송합니다.

쿠키의 사용 사례

  1. 세션 관리: 사용자 로그인 상태를 유지하고 세션 정보를 관리합니다.
  2. 사용자 추적: 사용자의 방문 기록과 활동을 추적하여 사용자 경험을 개선합니다.
  3. 사용자 설정 저장: 사용자가 선택한 언어, 테마 등의 설정을 저장합니다.

주의 사항

  • 보안: 쿠키는 클라이언트 측에 저장되므로, 민감한 정보는 Secure 및 HttpOnly 속성을 사용하여 안전하게 처리해야 합니다.
  • 용량 제한: 쿠키는 크기와 수량에 제한이 있으므로 큰 데이터를 저장하는 데 적합하지 않습니다.
  • 프라이버시: 쿠키는 사용자 추적에 사용될 수 있으므로 사용 시 프라이버시 정책을 준수해야 합니다.

요약

쿠키는 브라우저에서 작은 데이터를 저장하여 서버와 클라이언트 간에 상태를 유지하는 데 사용됩니다. 로그인 상태 유지, 사용자 추적, 사용자 설정 저장 등에 유용하며, 만료 기한, 경로, 도메인 등 다양한 속성을 설정할 수 있습니다. 그러나 보안과 프라이버시 측면을 고려하여 사용해야 합니다.

728x90
반응형