首页 > 解决方案 > 用于仅发送回元数据而不是完整数据的 HTTP 状态代码

问题描述

我正在寻找一个适当的 HTTP 状态代码,它告诉接收者只发送元数据,而不是完整的数据。

例如,假设您执行 HTTP GET:

GET /foo?meta_data_only=yes

例如,服务器不会查找完整的数据,只是将一些有关端点的元数据发回。是否有可以代表此响应的 HTTP 状态代码?我猜它在200或300的某个地方?

标签: httphttp-status-codes

解决方案


由于您的元数据在标头中返回,因此我将发送状态代码 204 No Content。

https://httpstatuses.com/204

服务器已成功完成请求,并且响应负载正文中没有要发送的其他内容。

响应头字段中的元数据指的是目标资源及其在应用请求的操作后选择的表示。

这听起来与您正在寻找的完全一样:一个不包含正文的成功响应,并且标头中的元数据提供了有关资源的更多信息。

另一件值得注意的事情是,HEAD当您只需要元数据时,通常使用 HTTP 动词。HEAD与 非常相似GET,只是它指定您不想要身体回来。例如,如果您对图像 url 执行 HEAD,您将收到 204 No Content 响应和有关文件的一些元数据,例如 Content-Type、Content-Size,可能是 ETag,但不会向您发送所有文件数据。许多 Web 服务器(例如 Nginx)支持这种对静态文件开箱即用的行为。我建议您停止使用查询字符串参数,而是实现端点的 HEAD 版本。这将使意图更加清晰和直观。


推荐阅读