Cookie

SeungJoo
|2024. 1. 11. 22:56
728x90

Cookie

쿠키란 서버가 사용자의 웹 브라우저에 전송하는 작은 데이터 조각입니다. 브라우저가 데이터 조각들을 저장해 놓았다가 동일한 서버에 요청 시 저장된 데이터를 함께 전송합니다. 쿠키는 두 요청이 동일한 브라우저에 들어왔는지 들어오지를 않았는지 판단할 때 주로 사용합니다. 쿠키를 사용하면 사용자의 로그인 상태를 유지할 수 있습니다.

쿠키 사용 세 가지 목적

세션 관리

쿠키는 세션 관리에 주로 사용됩니다. 사용자가 웹사이트에 로그인하면 서버는 사용자에게 고유한 세션 식별자를 할당하고 이를 쿠키에 저장합니다. 브라우저는 쿠키를 저장하고, 사용자가 다른 페이지로 이동하거나 새로고침할 때마다. 이 쿠키를 함께 서버에 전송합니다. 서버는 이를 통해 사용자를 식별하고 로그인 상태를 유지할 수 있습니다.

 

개인화

쿠키는 사용자의 경험을 개인화하는 데 사용될 수 있습니다. 예를 들어 사용자가 웹 사이트에서 설정한 언어, 테마 레이아웃 등과 같은 환경 설정을 쿠키에 저장하여 다음 방문 때에도 동일한 사용자 환경을 제공할 수 있습니다.

 

트래

사용자의 행동을 추적하는 데 사용될 수 있습니다. 광고나 분석을 위해 사용자가 방문한 페이지, 클릭한 링크, 머무른 시간 등의 정보를 쿠키에 저장하여 이를 서버에 전송합니다. 이를 통해 서버는 사용자의 행동을 분석하고 관련된 광고나 웹사이트를 개선하는데 활용할 수 있습니다.

 

쿠키는 클라이언트 측에서 관리되며, 브라우저에 의해 저장되기 때문에 서버에서는 쿠키를 생성하고 읽을 수 있을 뿐만 아니라, 수정 및 삭제도 할 수 있습니다. 그러나 보안상의 이유로 중요한 정보는 쿠키에 저장하지 않는 것을 관리합니다. 대신 세션 쿠키와 같은 민감한 정보를 안전하게 다루기 위해 다른 방법을 고려하는 것이 중요합니다.

쿠키 구성 요소

Name

쿠키의 식별자로 사용되는 문자열입니다. 서버에서 ㅋ쿠키를 생성할 때 이름을 지정하고 클라이언트에서는 이 이름을 사용하여 쿠키에 접근합니다.

Value

쿠키와 연결된 데이터로, 서버에서 클라이언트로 전송되어 저장됩니다. 값은 문자열 형태로 저장되며, 서버 및 클라이언트 간의 통신을 위한 정보를 포함할 수 있습니다.

Domain

쿠키가 유효한 도메인을 지정합니다. 이 도메인에 속한 서브도메인들도 쿠키에 접근할 수 있습니다.

Path

쿠키의 유요한 경로를 지정하며 이 경로 내에서만 쿠키에 접근할 수 있습니다.

Expiration Date

쿠키의 유효 기간을 나타냅니다. 만료 날짜가 지나면 브라우저에서 해당 쿠키를 삭제합니다. 만료 날짜를 설정하지 않으면 세션 쿠키로 간주되어 브라우저가 닫힐 때까지 유지합니다.

Secure Flag

이 플래그가 설정되면, 쿠키는 안전한 연결을 통해서만 전송됩니다. 중요한 정보를 다룰 때 보안을 강화하기 위해 사용됩니다.

SameSite Flag

쿠키가 어는 웹 사이트로 전송될 수 있는지를 제어할 수 있습니다. SameSite = None은 다른 사이트로의 쿠키 전송을 허용하고 SameSite = Strict는 오직 동일한 출처로만 전송을 허용합니다. 

쿠키 사용 예시

  • 쇼핑몰 장바구니 정보
  • 사용자의 로그인 상태

쿠키 동작 방식

  1. 클라이언트가 서버 웹 페이지나 리소스를 요청합니다.
  2. 서버는 클라이언트에서 요청을 받아 처리하고, 필요한 경우 응답 헤어에 Set-Cookie를 사용하여 클라이언트에 쿠키를 설정하도록 지시합니다.
  3. 브라우저는 받은 쿠키를 내부 저장소에 저장합니다.(쿠키에 유효 기간이 설정되어 있다면 그 기간 동안은 브라우저가 종료되어도 쿠키가 유지됩니다.)
  4. 쿠키는 도메인과 경로에 따라 다르게 저장하며 다른 도메인이나 경로에는 접근이 불가능합니다.
  5. 클라이언트가 동일한 서버에서 재요청을 보내면 브라우저는 해당 도메인과 경로에 속한 모든 쿠키를 요청 헤더에 자동으로 추가합니다.
  6. 서버는 클라이언트가 보낸 쿠키를 일고 필요한 작업을 수행하게 되며 만약 세션 쿠키가 있다면 클라이언트의 로그인 상태를 인식하고 해당 세션에 대한 정보를 이용하게 됩니다.

 

728x90

'BackEnd > 인터넷' 카테고리의 다른 글

Session  (0) 2024.01.13
DNS와 그 작동원리  (0) 2023.08.16
도메인 이름이란?  (0) 2023.08.16