다른 미디어 유형의 엄격한 하위 집합 인 미디어 유형을 설계했다고 가정 해 보겠습니다. 예를 들어, 내 미디어 유형은 application/vnd.example.foo+xml
(이하 약어로 foo+xml
)입니다. 이 미디어 유형은 application/xhtml+xml
(이하 약칭 xhtml
) 미디어 유형의 엄격한 하위 집합입니다. 기본적으로 내 미디어 유형 정의는 xhtml
미디어 유형 내의 특정 구성에 추가 처리 지침을 추가하거나 완전히 대체합니다. 예를 들어 어떤 foo+xml
문서에서 xpath //ul[@class='foo']/li[a]
은 클라이언트에 의해 특정 방식으로 표시되어야하고 나머지 문서는 무시되어야합니다. 원본과 완전히 다른 처리 모델 xhtml
미디어 유형.Accept 헤더를 기반으로 다른 Content-Type을 사용하여 동일한 문서에 태그를 추가해도됩니까?
이 정보로 무장 한 서버는 이제 해당 유형의 표현을 만들기 시작할 수 있으며 클라이언트는 수락 헤더를 전달하고이 유형의 문서를 행복하게 사용할 수 있습니다. 둘 다 내 형식 정의에있는 처리 지침을 준수합니다. 그러나 그것은 사용자가 처리하는 방법을 알 수 있다고 가정 할 수없는 사용자 지정 미디어 유형입니다. 내가 가진
의 옵션이 있습니다 :
- 클라이언트가
foo+xml
미디어 타입을 선호, 나는 그 미디어 유형으로 설정된 콘텐츠 형식으로 문서를 제공합니다. 클라이언트가xhtml
미디어 타입을 선호하는 경우
이것은 일반적인 클라이언트가 foo+xml
하지만 가능성이 xhtml
수 여전히 이해 무엇인지 모르는 것을 의미
xhtml
의 Content-Type 헤더와 같은 문서를 제공 내 문서를 처리하고, 다른 자원에 대한 링크를 따라 가며, 일반적인 방식으로 사용자에게 제시합니다. 마찬가지로, foo+xml
의 의미를 알고있는 클라이언트는 문서를 추측하거나 인트로 스팅하지 않아도 실제로 처리 할 수있는 것처럼 보이는지 (예 : HTML 프로파일 링, 마이크로 포맷 등).
- 이
- 의 장점과 단점이 기술을 에코 선행 기술이 거기에 무엇입니까?
Vary는 콘텐츠 유형으로 설정해야하며, 다른 ETag가 있어야합니다. 그렇지 않으면 캐시가 캐시 된 응답을 혼란에 빠뜨릴 수 있습니다 (일부 헤더는 중개자가 캐시 한 것의 일부이기 때문에). 나는 캐시에 두 개의 사본을 가지고 살 수있다. 그렇다. 그들은 아마 업데이트를 받아 들일 것이고, 네, 나는 무효화되어야한다고 생각한다.좋은 지적이야. – mogsie
나는 최근에 API가 XSL 처리 명령을 제공하기 위해 애플리케이션 문서/원자 + XML과 동일한 문서를 제공하면서 브라우저로 연결하여 atom 문서를 application/xml (선호하는)으로 보내야한다는 것을 알았다. 원자를 선호하는 고객에게. 브라우저는 원자로 제공되는 원자 문서 스타일을 지정하지 않습니다. 그래, 나는 이것을 계속하고있다. :-) – mogsie