拥有由网址https://example.com/resource
标识的资源,接受image/svg+xml
和text/html
媒体类型(使用HTTP&#39的Accept标头)。
客户如何了解这些可能的媒体类型? 我们经常将Accept标头称为客户端和服务器之间的协商。但我真的不明白客户端如何向服务器提供所需的类型,以及服务器应该如何回答。
我认为服务器可能能够向客户端传授其允许的类型。
答案 0 :(得分:0)
我认为这需要分开:
如果您是服务器并希望通知客户有关所请求资源的替代表示,您可以通过RFC 5988中所述的Link
标头进行此操作。可能的响应可能如下所示:
HTTP/1.1 200 Ok
Content-Type: image/svg+xml
Link: <https://example.com/resource>; rel="alternate"; type="image/png"
Link: <https://example.com/resource>; rel="alternate"; type="image/jpeg"
如果客户端提取资源并想知道哪些替代表示可用,那么如果找不到Link
标题,则可以采用这种方法:
Accept
的{{1}}标头,暗示客户端了解每种可以想象的媒体类型。从响应中提取媒体类型,并将其添加到重量为*/*
的Accept标头中,让服务器知道所服务的媒体类型是不可接受的。示例:
q=0
Accept: image/svg+xml;q=0, */*
回复,则表示您已完成。如果不是:返回步骤2. 您现在应该知道服务器上给定资源的所有媒体类型。