我如何提供哪些内容类型(用于HTTP内容协商)?

时间:2018-01-29 07:02:50

标签: http http-headers content-type content-negotiation doi

解决DOI时得到的内容取决于内容协商。 我在看https://citation.crosscite.org/docs.html#sec-3 我看到不同的服务提供不同的内容类型。

对于特定网址,我想知道所有它可以提供给我的内容类型。 其中一些可能比我所知道的更有用(即我不想提前写出偏好列表)。

例如:

https://doi.org/10.5061/dryad.1r170

我认为可能OPTIONS是这样做的方式

但这并没有带来什么有趣的,只有关于允许的请求方法。

shell> curl  -v -X OPTIONS   http://doi.org/10.5061/dryad.1r170
* Hostname was NOT found in DNS cache
*   Trying 2600:1f14:6cf:c01::d...
*   Trying 54.191.229.235...
* Connected to doi.org (2600:1f14:6cf:c01::d) port 80 (#0)
> OPTIONS /10.5061/dryad.1r170 HTTP/1.1
> User-Agent: curl/7.38.0
> Host: doi.org
> Accept: */*
>
< HTTP/1.1 200 OK
* Server Apache-Coyote/1.1 is not blacklisted
< Server: Apache-Coyote/1.1
< Allow: GET, HEAD, POST, TRACE, OPTIONS
< Content-Length: 0
< Date: Mon, 29 Jan 2018 07:01:14 GMT
<
* Connection #0 to host doi.org left intact

1 个答案:

答案 0 :(得分:0)

我想还没有这样的标准,但是Link标头:https://www.w3.org/wiki/LinkHeader可以公开这些信息。

但就个人而言,我不会过分依赖它。例如,服务器可以开始发送新的内容类型,但仍然不会通过此标头公开它。

经常通过手动或自动方式检查API响应标头以进行任何更改可能很有用。