티스토리 뷰

기타

HTTP 헤더란?

ipxy 2025. 4. 18. 12:30
728x90

 

 

✅ 1. 헤더란 무엇인가?

HTTP 헤더(Header)는 클라이언트와 서버 간의 통신 시, 요청(Request) 또는 응답(Response)에 메타데이터(Metadata)를 포함하기 위한 필드입니다.

🧠 쉽게 말해:

  • 본문(Body)이 실질적인 데이터를 담는 곳이라면,
  • 헤더(Header)는 "이 데이터를 어떻게 처리해야 하는지", "누구의 요청인지", "형식은 무엇인지" 등의 설명서 역할을 합니다.

✅ 2. 헤더의 위치

HTTP 메시지는 아래처럼 구성됩니다:

요청/응답 라인
헤더
<빈 줄>
바디

📌 예시: HTTP 요청

POST /login HTTP/1.1
Host: example.com
Content-Type: application/json
Authorization: Bearer eyJhbGciOi...

{
  "username": "admin",
  "password": "1234"
}

✅ 3. 헤더의 구성

  • 각 헤더는 "키: 값"의 쌍으로 이루어짐
  • 대소문자 구분하지 않음 (하지만 관례적으로 - 포함하여 Title Case 사용)

예:

Content-Type: application/json
X-Tenant-ID: shopA

✅ 4. 헤더의 분류

📌 A. 표준 헤더 (RFC 정의)

💡 요청(Request) 전용

헤더 설명
Host 요청 도메인 (가상호스팅 시 구분용)
Content-Type 보낸 데이터의 타입 (application/json, text/html)
Content-Length 바디의 바이트 길이
Accept 응답에서 받고 싶은 데이터 타입
Authorization 인증 정보 (Bearer, Basic, API Key)
User-Agent 클라이언트 정보 (브라우저, 앱 등)
Referer 이전 페이지 주소 (보안/분석용)

💡 응답(Response) 전용

헤더 설명
Content-Type 응답 데이터 타입
Set-Cookie 클라이언트에 쿠키 저장
Cache-Control 캐시 제어 (no-cache, max-age)
Location 리디렉션 위치 (301, 302)
Content-Disposition 파일 다운로드 시 파일 이름 설정 등

📌 B. 커스텀 헤더 (사용자 정의)

  • X- 접두사를 붙여서 시스템, 서비스, 테넌시 등을 표현
  • 예시:

 

헤더  설명
X-Tenant-ID SaaS 멀티 테넌시 구분
X-Request-ID 트래킹용 UUID
X-User-Role 권한 (admin, viewer)
X-Client-Version 클라이언트 앱 버전 정보

✅ 5. 헤더의 주요 사용 목적

목적 설명 예시
✅ 인증 API 키, JWT, 세션 등 Authorization: Bearer ...
✅ 콘텐츠 형식 바디 데이터 포맷 명시 Content-Type: application/json
✅ 응답 타입 지정 어떤 형식으로 응답받고 싶은지 Accept: application/json
✅ 클라이언트 정보 디바이스나 브라우저 구분 User-Agent: Mozilla...
✅ 트래픽 추적 로깅/디버깅을 위한 식별자 X-Request-ID: UUID
✅ 캐시 정책 브라우저나 CDN 캐싱 제어 Cache-Control: no-store
✅ 다국어 지원 클라이언트 언어 지정 Accept-Language: ko-KR
✅ 리전/테넌시 정보 멀티 테넌시 시스템 식별 X-Tenant-ID: tenantA

✅ 6. 실전 팁

☑️ 표준 헤더는 최대한 준수

  • 인증: Authorization
  • 포맷: Content-Type, Accept
  • 응답 제어: Cache-Control, ETag

☑️ 커스텀 헤더는 X- 또는 네임스페이스 접두어 사용

예: X-MyCompany-Feature-Flag: enabled

☑️ 민감 정보는 바디에, 인증/식별은 헤더에

  • 사용자 비밀번호, 개인정보: 바디
  • API 키, 토큰, 사용자 ID: 헤더

 

728x90

'기타' 카테고리의 다른 글

Kafka Connect의 구성(config) 백업  (0) 2025.04.18
Apache APISIX의 환경 설정값을 백업  (0) 2025.04.18
서비스 기획 vs 개발 기획 비교  (0) 2025.04.18
개발 기획이란?  (0) 2025.04.18
서비스 기획이란?  (0) 2025.04.18
250x250
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2025/04   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
글 보관함