1. 쿠키란 무엇인가?
쿠키(Cookie)는 서버에서 생성되어 클라이언트 측(브라우저)에 저장되는 데이터다.
HTTP는 기본적으로 상태를 유지하지 않는(stateless) 프로토콜이기 때문에,
서버는 요청이 들어올 때마다 “이 요청이 누구의 것인지” 알기 어렵다.
이를 보완하기 위해 쿠키가 사용된다.
쿠키는 <이름, 값>의 형태를 가지며, 여기에 **추가 속성(유효기간, 경로, 도메인 등)**을 더할 수 있다.
브라우저는 서버로부터 받은 쿠키를 저장해 두었다가,
다음 번 요청 시 자동으로 함께 전송함으로써 사용자 상태를 유지한다.
2. 서버에서 쿠키 생성과 전송
서버는 응답 메시지에 Set-Cookie 헤더를 포함시켜 쿠키를 클라이언트에 전달한다.
이 헤더는 쿠키의 이름, 값, 그리고 세미콜론(;)으로 구분된 여러 속성들을 포함할 수 있다.
예를 들어,
Set-Cookie: user_id=junhyung
Set-Cookie: theme=dark; Path=/; Max-Age=3600
Set-Cookie: session_token=abc123; Secure; HttpOnly
한 응답에 여러 개의 Set-Cookie 헤더를 보낼 수 있으며, 클라이언트는 이를 각각 저장한다.
3. 브라우저에서 쿠키 확인하기
저장된 쿠키는 브라우저 개발자 도구에서 직접 확인할 수 있다.
크롬의 경우,
Application → Storage → Cookies 경로를 통해 접근 가능하다.
이 화면에서 각 쿠키의
- Name (이름)
- Value (값)
- Domain (적용 도메인)
- Path (적용 경로)
- Expires/Max-Age (유효기간)
- Secure, HttpOnly 속성 등을 확인할 수 있다.
4. 쿠키를 활용한 인증과 세션 유지
HTTP는 Stateless 특성상,
클라이언트가 같은 서버에 여러 번 요청하더라도 서버는 요청 간의 연관성을 모른다.
만약 매번 로그인 정보를 함께 보낸다면 비효율적이고 보안상 위험할 수 있다.
이를 해결하기 위해 **쿠키 기반 인증(Session 인증)**이 등장했다.
- 사용자가 로그인 정보를 서버에 보낸다.
- 서버는 인증에 성공하면 세션 ID를 쿠키로 생성하여 클라이언트에 전달한다.
- 이후 클라이언트는 요청 시마다 쿠키를 함께 전송하며,
서버는 쿠키의 세션 ID를 확인해 사용자를 식별한다.
이 과정 덕분에 사용자는 매번 로그인할 필요 없이 인증 상태가 유지된다.
'컴퓨터 과학 > 네트워크' 카테고리의 다른 글
| 네트워크의 캡슐화(Encapsulation)와 역캡슐화(Decapsulation) 완벽 이해 (0) | 2025.10.05 |
|---|---|
| IPv4 주소의 기본 구조 이해하기 (0) | 2025.10.05 |
| HTTP 기반 기술: 캐시(Cache) (0) | 2025.10.05 |
| HTTP 요청과 응답에서 사용되는 주요 헤더 정리 (0) | 2025.10.05 |
| HTTP 상태 코드 완벽 정리 (0) | 2025.10.05 |