Content-LocationContent-Location은 방금 반환된 표현(representation)에 직접 접근할 수 있는 구체적 URL을 알리는 응답 헤더입니다. 콘텐츠 협상 결과 선택된 특정 표현의 '고유 주소'를 가리킵니다.
예를 들어 `/articles/42`가 Accept 협상으로 JSON을 반환했다면, 그 JSON 표현 자체의 주소인 `/articles/42.json`을 Content-Location으로 알려줄 수 있습니다.
Location과 자주 혼동되지만 역할이 전혀 다릅니다. Location은 3xx 리다이렉트나 201 Created에서 '앞으로 이동/참조할 자원'을 가리키는 반면, Content-Location은 '지금 이 응답 본문이 어느 URL의 표현인가'를 설명합니다. Location은 내비게이션 지시, Content-Location은 메타데이터입니다.
콘텐츠 협상(언어·포맷·인코딩)에서 특히 유용합니다. 협상용 URL(`/report`)이 여러 표현을 가질 때, 각 협상 결과의 안정적 직접 URL(`/report.ko.html`, `/report.en.pdf`)을 Content-Location으로 노출하면 캐시·북마크·공유에 유리합니다.
명세상 Content-Location과 요청 URL이 다르면, 응답 본문은 요청 URL이 아니라 Content-Location이 가리키는 자원의 표현으로 해석해야 합니다. 이 미묘한 의미 때문에 PATCH/PUT 응답 등에서 잘못 쓰면 캐시가 엉뚱한 URL에 본문을 귀속시킬 수 있어 주의가 필요합니다.
Content-Location: <url>e.g. Content-Location: /articles/42.json