Content-Location
사용법
Content-Location 헤더는 응답 본문으로 전달된 리소스의 특정 표현을 식별하는 URL을 제공합니다. 클라이언트를 다른 리소스로 리다이렉트하는 Location 헤더와 달리, Content-Location은 콘텐츠 협상 후 서버가 선택한 바로 그 표현을 가리킵니다.
서버가 동일한 리소스의 여러 표현(다른 언어, 형식, 인코딩)을 지원할 때, Content-Location 헤더는 어떤 변형이 선택되었는지 클라이언트에 알려 줍니다. 이 구분은 협상 결과의 캐싱과 북마크에서 의미가 있습니다.
값은 절대 URL이거나 요청 URL을 기준으로 해석되는 상대 참조입니다. 실제로는 상대 참조가 더 흔합니다.
Content-Location은 PUT과 POST 요청에 대한 응답에도 나타납니다. POST가 성공적으로 새 리소스를 생성한 뒤 응답 본문이 생성된 리소스를 직접 나타낼 때, 서버는 Content-Location을 새로 만들어진 항목의 URL로 설정합니다.
예시
클라이언트가 /report의 문서를 요청하고 서버는 콘텐츠 협상을 통해 영어 PDF 변형을 선택합니다. Content-Location 헤더가 선택된 표현의 구체적인 URL을 식별합니다.
GET /report HTTP/1.1
Host: example.re
Accept: application/pdf
Accept-Language: en
HTTP/1.1 200 OK
Content-Type: application/pdf
Content-Language: en
Content-Location: /report/en.pdf
POST 요청이 새 리소스를 생성한 뒤 서버는 생성된 항목을 응답 본문으로 반환합니다. Content-Location 헤더는 새 리소스의 정규 URL을 가리킵니다.
HTTP/1.1 201 Created
Content-Type: application/json
Content-Location: /orders/12345
참고
Location 헤더는 클라이언트를 다른 리소스로 리다이렉트하여 요청 대상을 바꿉니다. Content-Location은 이미 응답 본문으로 전달된 표현의 구체적인 URL을 식별합니다. Location은 새 요청을 유발하고, Content-Location은 무엇이 반환되었는지를 설명합니다.