gpt4 book ai didi

http - 内容协商和扩展媒体类型

转载 作者:塔克拉玛干 更新时间:2023-11-01 19:08:38 25 4
gpt4 key购买 nike

一些媒体类型是其他媒体类型的扩展。此类媒体类型通常在其名称中使用 + 来表示这一点。例如,application/atom+xml 扩展了通用的 xml,application/hal+json 扩展了通用的 json。

我的问题是:如果客户端请求通用媒体类型而服务器想要响应其中一种扩展媒体类型,应该怎么办?例如,如果请求的 header 为 Accept: application/json 并且服务器希望使用 application/hal+json 进行响应,那么服务器应该...

  1. ...使用 Content-type: application/json 提供简单的 JSON,即不包括 _links_embedded s?这就是客户要求的,这就是它得到的。如果您想要 HAL,请提出要求。

  2. ...使用 Content-type: application/json 交付 HAL 表示? HAL,毕竟是 json,这就是客户要求的。客户很高兴,可以忽略它不理解的部分。

  3. ...使用 Content-type: application/hal+json 交付 HAL 表示?和 2. 一样,客户端得到它想要的,可以忽略它不理解的部分。但也有一个线索表明,客户可以从表示中获得更多。

我的偏好是 3。但是是否有规范、最佳实践或常用方法可以提供最佳选择指导?

最佳答案

服务器可能会执行这三种操作中的任何一种,或者如果它不愿意使用默认表示进行响应,它可能会使用 406 Not Acceptable 进行响应。

参见:https://www.rfc-editor.org/rfc/rfc7231#section-6.5.6

关于http - 内容协商和扩展媒体类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25964711/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com