Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update 2024-05-29-Token.md #59

Merged
merged 1 commit into from
Jun 2, 2024
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
50 changes: 50 additions & 0 deletions _posts/2024-05-29-Token.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,56 @@ published: true

서버가 클라이언트 인증을 확인하는 방식은 대표적으로 쿠키, 세션, 토큰 3가지 방식이 있다.

### 쿠키(Cookie)

> 웹 브라우저가 웹 서버와 상호 작용할 때 주고받는 작은 데이터 조각으로, **Key-Value** 형식의 문자열 덩어리다.

클라이언트가 특정 웹사이트를 방문하면, 그 사이트의 서버가 클라이언트의 브라우저에 쿠키를 설치한다. 이 쿠키는 클라이언트 측에 저장되어 이후에 같은 사이트를 방문할 때 다시 서버로 전송되어 **고유 정보 식별**을 할 수 있다.

### 구조

위에서 말했듯, 쿠키는 Key-Value 쌍으로 구성된다. 예를 들어, 'userId=12345'와 같은 형태이다.

또한 쿠키는 다양한 속성이 포함될 수 있다. 주요 속성은 다음과 같다:
* **Name**: 쿠키의 이름
* **Value**: 쿠키에 저장된 값
* **Domain**: 쿠키가 유효한 도메인
* **Path**: 쿠키가 유효한 URL 경로
* **Expires** 또는 Max-Age: 쿠키의 유효 기간
* **Secure**: HTTPS 연결에서만 전송됨
* **HttpOnly**: JavaScript로 접근할 수 없도록 설정

### 동작 원리

클라이언트가 웹사이트에 처음 방문하면, 서버는 응답 헤더에 'Set-Cookie' 명령을 포함하여 쿠키를 전송한다. 이때 서버는 클라이언트 측에 저장하고 싶은 정보를 응답 헤더의 Set-Cookie에 담는다. 브라우저는 쿠키를 로컬 저장소에 저장힌다.

이후 클라이언트가 요청을 보낼 때마다, 웹 브라우저는 저장된 쿠키를 요청 헤더의 'Cookie' 필드에 포함시켜 서버로 전송한다. 서버는 쿠키에 담긴 정보를 바탕으로 해당 요청을 보낸 클라이언트를 식별하고, 로그인 상태 유지, 사용자 맞춤 설정 적용 등 필요한 기능을 제공한다. 예를 들어, 특정 팝업을 사용자에게 맞춤형으로 표시할 수 있다.

서버는 필요에 따라 쿠키의 값을 갱신하거나 삭제할 수 있다. 브라우저는 쿠키의 유효 기간이 만료되면 자동으로 쿠키를 삭제한다.

### 쿠키의 활용

아래는 예시.

1. 세션 관리
* **로그인 상태 유지**: 사용자가 로그인을 하면 세션 ID를 쿠키에 저장하여 재방문 시 로그인 상태 유지 가능

2. 개인화
* **사용자 맞춤 설정**: 사용자 선호도나 설정을 저장하여 개인 맞춤형 서비스 제공 가능 (ex. 7일간 보지 않기)

3. 트래킹 및 분석
* **트래킹**: 사용자의 행동을 기록하고 분석하는 용도로 사용된다. 트래킹 쿠키는 방문한 사이트가 아닌 다른 도메인으로도 데이터를 전송할 수 있다. 예를 들어, 광고 네트워크는 사용자가 특정 웹사이트에서 본 상품을 추적하여 관련 광고를 다른 웹사이트에서도 표시할 수 있다. 사용자가 웹사이트 A에서 신발을 본 경우, 해당 정보는 쿠키를 통해 저장되어 사용자가 웹사이트 B를 방문할 때 신발 광고를 보여주는 데 활용된다. 이러한 트래킹 데이터는 사용자 경험을 개인화하고 광고 효율성을 높이는 데 사용된다.

<!-- 트래킹 쿠키: 보충 설명 필요 -->

### 쿠키의 종류

<!-- 세션 쿠키, 지속 쿠키 -->

### 쿠키의 단점

<!-- 보안, 용량 -->

<!--

클라이언트 인증이란?
Expand Down
Loading