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


解析

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

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

例如:

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

我想也许选项是做到这一点的方法

但这并没有给出任何有趣的信息,只有关于允许的请求方法。

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

我想还没有这样的标准,但是链接标头:https://www.w3.org/wiki/LinkHeader 可能会暴露此信息。

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

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

相关内容

  • 没有找到相关文章

最新更新