요청에 임의의 커스텀 헤더를 추가하는 레시피입니다. 요청 추적 ID, API 버전, 언어 선호 등을 전달할 때 씁니다.
요청에 임의의 커스텀 헤더를 추가하는 레시피입니다. 요청 추적 ID, API 버전, 언어 선호 등을 전달할 때 씁니다.
curl https://api.example.com/data \
-H 'X-Request-Id: 7f3c-abc' \
-H 'Accept-Language: ko-KR' \
-H 'User-Agent: my-app/1.2.0'await fetch('https://api.example.com/data', {
headers: {
'X-Request-Id': '7f3c-abc',
'Accept-Language': 'ko-KR',
'X-Api-Version': '2024-01'
}
});import requests
res = requests.get('https://api.example.com/data', headers={
'X-Request-Id': '7f3c-abc',
'Accept-Language': 'ko-KR',
'X-Api-Version': '2024-01',
})헤더 이름은 대소문자를 구분하지 않습니다. 관례상 표준 헤더는 카멜-대시(`Accept-Language`), 비표준 확장 헤더는 예전엔 `X-` 접두사를 붙였지만(RFC 6648로 권장은 폐지) 여전히 널리 쓰입니다. `X-Request-Id` 같은 상관관계 ID는 분산 시스템 디버깅에 매우 유용합니다.
curl은 헤더마다 `-H`를 반복해서 여러 개를 보냅니다. `fetch`와 `requests`는 객체·딕셔너리로 한 번에 넘깁니다. 같은 헤더 이름을 여러 번 보내야 하면(예: 여러 개의 `Set-Cookie`) 브라우저 `Headers` 객체의 `append`나 `requests`의 리스트 처리 방식을 확인하세요.
브라우저에서는 `Host`, `Content-Length`, `Origin` 같은 금지 헤더(forbidden headers)를 스크립트로 설정할 수 없습니다. 또한 커스텀 헤더를 붙이면 단순 요청 조건을 벗어나 CORS 프리플라이트(OPTIONS)가 유발될 수 있으니 서버의 CORS 설정을 함께 점검하세요.