상세 컨텐츠

본문 제목

[네트워크] HTTP 헤더와 쿠키

카테고리 없음

by 정성윤TV 2025. 3. 30. 16:43

본문

1. HTTP 헤더와 쿠키

 

HTTP 통신에서 헤더(Header)는 클라이언트와 서버가 주고받는 부가 정보를 담고 있으며,
쿠키(Cookie)는 클라이언트 측에 상태 정보를 저장하는 대표적인 방식이다.

1-1. HTTP 헤더란?

HTTP 메시지에서 요청 또는 응답에 포함되는 메타데이터이다.
브라우저 정보, 인증 정보, 콘텐츠 타입 등 다양한 정보를 전달한다.

 

ex) 예) 메시지 바디의 내용, 메시지 바디의 크기, 압축, 인증, 요청 클라이언트, 서버 정보, 캐
시 관리 정보 등등

헤더 부분

 

1) 요청 헤더 (Request Header)

클라이언트가 서버에 요청할 때 함께 전송하는 정보


Host 요청 대상 서버의 도메인 Host: www.example.com
User-Agent 브라우저 및 운영체제 정보 User-Agent: Mozilla/5.0
Accept 클라이언트가 수용 가능한 데이터 형식 Accept: text/html
Cookie 클라이언트가 보유한 쿠키 전송 Cookie: sessionId=abc123
Content-Type 요청 데이터의 형식 application/json, application/x-www-form-urlencoded

 

2) 응답 헤더 (Response Header)

서버가 클라이언트에게 응답할 때 함께 전달하는 정보


Content-Type 응답 데이터의 MIME 타입 Content-Type: text/html
Content-Length 응답 바디의 길이 (byte) Content-Length: 1024
Set-Cookie 클라이언트에 쿠키 설정 지시 Set-Cookie: sessionId=abc123; Path=/; HttpOnly
Cache-Control 캐싱 정책 설정 Cache-Control: no-cache
Location 리다이렉트 위치 Location: /login

 

 

1-2. 쿠키(Cookie)

쿠키는 클라이언트(브라우저)에 저장되는 소량의 데이터이다.
서버가 클라이언트에게 Set-Cookie 헤더로 쿠키를 설정하면,
이후 요청마다 클라이언트가 Cookie 헤더로 서버에 다시 전달한다.

 

1) 쿠키의 구조

 

• Set-Cookie: 서버에서 클라이언트로 쿠키 전달(응답)
• Cookie: 클라이언트가 서버에서 받은 쿠키를 저장하고, HTTP 요청시 서버로 전달

• ex) set-cookie: sessionId=abcde1234; expires=Sat, 26-Dec-2020 00:00:00 GMT; path=/; domain=.google.com; Secur


name=value 쿠키 이름과 값 sessionId=xyz789
Path 전송될 URL 경로 Path=/mypage
Max-Age 쿠키 유효 시간(초) Max-Age=3600 (1시간)
Expires 만료 날짜 Expires=Wed, 21 Oct 2025 07:28:00 GMT
Domain 적용할 도메인 범위 .example.com
Secure HTTPS 연결에서만 전송 Secure
HttpOnly 자바스크립트 접근 금지 HttpOnly

 

2) 쿠키 동작 예시

쿠키 로그인

3) 쿠키 생명주기, 도메인, 경로, 보안

1-3. 쿠키의 주요 활용 목적

세션 관리 로그인 상태 유지, 인증 처리
개인화 사용자 설정(언어, 테마 등) 저장
트래킹 사용자 행동 분석, 광고 목적 (주의 필요)

1-4. 쿠키의 보안 관련 속성 요약

 

Secure HTTPS 연결에서만 전송 (중간자 공격 방지)
HttpOnly JS 접근 차단 (XSS 공격 방지)
SameSite 사이트 간 요청 시 쿠키 전송 제한 (Lax, Strict, None)

 

1-5. 쿠키의 한계

  • 저장 용량 제한: 쿠키 1개당 약 4KB, 도메인당 총 20개 내외
  • 클라이언트 저장: 사용자가 직접 삭제 가능
  • 보안 이슈: 민감한 정보는 절대 저장 금지 (예: 비밀번호, 카드번호)