개발학습기

쿠키(Cookie)

afkorigin 2024. 12. 29. 21:31

전체목록

 

  • 쿠키란?

쿠키는 웹에서 클라이언트(주로 웹 브라우저)와 서버 간에 정보를 저장하고

이를 주고받는데 사용되는 작은 데이터 파일이다.

쿠키는 서버와 클라이언트 간의 상태 정보를 유지하는 중요한 역할을 하며

주로 사용자의 세션을 관리하거나, 사용자 맞춤화된 설정을 기억하는데 사용된다.

 

  • 쿠키의 주요 역할

1. 사용자 인증 관리

사용자가 로그인하면 서버는 쿠키를 통해 세션 ID를 클라이언트에 전달하고

이후 클라이언트가 서버에 요청할 때마다 해당 세션ID를 통해 사용자의 로그인 상태를 유지한다.

 

2. 사용자 맞춤화

사용자가 웹 사이트에서 설정한 환경(예: 언어, 테마 등) 을 쿠키에 저장해두고

사용자가 웹 사이트를 다시 방문했을 때 그 설정을 자동으로 적용할 수 있다.

 

3. 추적 및 분석

쿠키는 사용자의 웹사이트 방문 정보를 저장하고 이를 통해 사용자 행동을

추적하거나 통계를 수집하는데 사용될 수 있다.

 

이를 통해 웹사이트 운영자는 사이트의 성능을 개선하거나, 광고 및 마케팅전략을

최적화 할 수 있다.

 

 

  • 쿠키의 작동원리

1. 쿠키 생성

서버가 클라이언트에게 정보를 저장하고 싶을 때, 서버는 클라이언트에게 응답을

보내면서 SetCookie 헤더를 포함시킨다.

이 헤더는 클라이언트에게 쿠키를 설정하라는 지시이다.

 

2. 쿠키 저장

클라이언트(웹 브라우저)는 서버가 보낸 Set Cookie 정보를 저장한다.

 

쿠키는 보통 클라이언트의 로컬 디스크에 저장되며, 사용자가 브라우저를 종료한 후에도 저장된다.

 

3. 쿠키 전송

클라이언트는 이후 서버에 요청을 보낼 때마다 해당 웹사이트의 도메인에 맞는

쿠키를 요청에 포함시켜 서버로 전송한다.

 

이를 통해 사용자의 상태를 추적할 수 있다.

 

4. 쿠키 만료

쿠키에는 유효 기간을 설정할 수 있다.

만약 expires 속성이나 max-age 속성을 설정했다면, 해당 시간이 지나면 쿠키는 자동으로

만료되어 삭제한다.

만약 유효 기간이 설정되지 않으면 쿠키는 브라우저 세션이 끝날때까지 유효하다.

 

 

  • 쿠키의 장단점

장점

1. 상태 유지

쿠키를 사용하면 서버가 사용자의 상태를 기억할 수 있으므로

로그인 상태유지, 장바구니 저장 등 다양한 기능을 구현할 수 있다.

 

2. 편리한 사용자 맞춤화

쿠키를 사용하여 사용자의 언어나 테마 설정을 기억하고 웹사이트를 개인화할 수 있다.

 

3. 세션 관리

쿠키는 세션ID와 같은 정보를 저장하고 로그인 세션을 관리할 수 있게 도와준다.

 

단점

1. 보안문제

쿠키는 클라이언트 측에 저장되므로 민감한 정보(예: 비밀번호, 개인 정보 등)를 쿠키에 저장하면

보안 위협이 될 수 있다.

 

2. 용량 제한

쿠키는 크기가 작아(대체로 4KB 이내) 많은 양의 데이터를 저장할 수 없다.

그래서 큰 데이터를 젖아하려면 다른 방법을 사용해야한다.

 

3. 추적 가능성

쿠키를 사용하여 사용자의 웹사이트 방문 기록을 추적할 수 있기 때문에

사용자 프라이버시 침해 우려가 있을 수 있다.

이를 해결하기 위해 쿠키 수집동의를 받는것이 일반적이다.

 

4. 만료된 쿠키

만료 시간이 지난 쿠키는 더잇아 사용할 수 없으며 이는 쿠키를 새로 설정해야하는 번거로움을

초래할 수 있다.

 

  • 정리

쿠키는 웹 애플리케이션에서 상태 정보를 저장하고 관리하기 위해 사용되는 작은 데이터 파일이다.

클라이언트와 서버는 쿠키를 주고 받으며 이를 통해 사용자인증 개인화된 설정 추적 등을 할 수 있다.

쿠키는 이름, 값, 만료날짜, 경로, 도메인 등의 정보를 포함하며 보안 및 개인정보 보호를

고려한 관리가 필요하다.

 

'개발학습기' 카테고리의 다른 글

웹 소켓  (0) 2025.02.11
벌크 인서트(Bulk Insert)  (0) 2025.02.02
세션(Session)  (0) 2024.12.29
FTP(File Transfer Protocol)  (0) 2024.12.29
포트(Port)  (0) 2024.12.29