정의
클라이언트가 서버에 요청할 때 전송하는 메타데이터 정보입니다.
서버의 응답 방식에 영향을 미칩니다.
Host
요청할 서버의 호스트 정보입니다.
HTTP/1.1부터는 필수 헤더로, 동일한 IP에서 여러 도메인을 서비스할 수 있도록 가상 호스팅에 사용됩니다.
예시: Host: api.example.com
User-Agent
클라이언트 환경 정보, 브라우저 정보입니다.
서버는 이 정보를 바탕으로 콘텐츠를 다르게 제공할 수 있습니다.
예시: User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64)
Accept
클라이언트가 처리 가능한 콘텐츠 타입을 나타냅니다.
서버는 이 값을 바탕으로 적절한 포맷으로 응답합니다.
예시: Accept: application/json, text/html
Authorization
인증 토큰 또는 자격 증명 정보입니다.
주로 Bearer 토큰 방식이나 Basic 인증 방식이 사용됩니다.
예시: Authorization: Bearer abc123
Content-Type
전송할 데이터의 형식입니다.
서버는 이 값을 기반으로 본문을 파싱합니다.
예시: Content-Type: application/json
Cookie
클라이언트가 보관 중인 쿠키 값입니다.
세션 관리나 로그인 상태 유지에 활용됩니다.
예시: Cookie: sessionId=abc123
Referer
현재 요청이 유발된 이전 페이지의 URL 정보입니다.
보안 상 민감한 정보가 유출될 수 있어 일부 브라우저에서는 정책적으로 숨기기도 합니다.
예시: Referer: https://example.com/page
Origin
요청 도메인으로 CORS 보안에서 핵심입니다.
CORS 정책에서 중요하게 사용되며, 서버는 이를 기준으로 요청 허용 여부를 판단합니다.
예시: Origin: https://example.com
X-CSRF-Token
CSRF 공격 방지를 위한 클라이언트 측 토큰입니다.
주로 POST, PUT, DELETE 요청 등에서 사용되며, 서버는 해당 토큰을 검증해 요청의 신뢰성을 판단합니다.
예시: X-CSRF-Token: abc123token
사용 예시
요청 헤더(Request Header) 형식입니다.
fetch('/api/profile', {
method: 'GET',
headers: {
'Host': 'api.example.com',
'User-Agent': 'MyClient/1.0',
'Accept': 'application/json',
'Authorization': 'Bearer abc123',
'Content-Type': 'application/json',
'Cookie': 'sessionId=xyz456',
'Referer': 'https://example.com/home',
'Origin': 'https://example.com',
'X-CSRF-Token': 'secureToken123'
}
})
.then(response => response.json())
.then(data => console.log(data));