接受 HTTP 请求中的标头



我正在尝试学习一般的Web服务,但有一个小小的疑问。

发送HTTP请求时,如果我在Accept标头中提到特定格式(例如JSON(,并假设服务器不支持该格式,那么它是网络调用错误还是服务器仍将使用它支持的任何格式进行响应?

我知道在发送 POST 请求时,客户端按名称"内容类型"发送另一个标头,如果服务器不支持该格式,则它会响应 415 错误。(不支持的媒体类型(。

这取决于服务器。它不需要注意"接受"标头字段。

没有任何接受标头字段的请求意味着用户代理 将接受任何媒体类型作为响应。如果标题字段存在 在请求中,并且没有可用的表示 响应具有列为可接受的媒体类型,即源 服务器可以通过发送 406(不是 可接受的(响应或通过处理 响应,就好像它不受内容协商的影响一样。

(来自 https://www.greenbytes.de/tech/webdav/rfc7231.html#rfc.section.5.3.2.p.7(

对于 Web 服务,服务器将负责表示它打算支持的格式类型,无论它是使用 JSON 还是 XML。

根据从客户端接收的数据,服务器应验证客户端提供的格式。如果它符合指定的格式,则服务器将根据端点的意图做出相应的响应。另一方面,如果它不适合,服务器应该优雅地响应,指示 Web 服务不支持该格式 (JSON/XML(。

我希望这能回答你的问题。有好的一天!

最新更新