HTTP状态204 (No Content)

HTTP状态204 (No Content)表示服务器已成功完成请求,并且在响应有效负载正文中没有要发送的内容。服务器可能希望以entity-headers的形式返回更新的元信息,如果存在,应该将其应用于当前文档的活动视图(如果有的话)。

204响应绝不能包含消息体,因此总是在头字段之后的第一个空行终止。

默认情况下,204 (No Content)响应是可缓存的。如果需要覆盖缓存,则响应必须包括缓存各自的缓存头

例如,您可能希望204 (No Content)在UPDATE操作中返回状态,其中请求有效负载足够大而不能来回传输。用户代理将有效负载发送到服务器以更新资源,如果操作成功,服务器将响应204以指示成功,以便客户端应用程序可以更新其UI以通知用户操作的成功。

它还经常与期望自动数据传输普遍存在的接口一起使用,例如在分布式版本控制系统中。

解决丢失的更新问题

对于状态204,服务器还可以包括HTTP头ETag以允许客户端在服务器上进行进一步更新之前验证客户端资源表示 - 以避免丢失更新问题

当多人编辑资源而不了解彼此的更改时,会发生丢失的更新问题。在这种情况下,最后一个更新资源的人“获胜”,之前的更新将丢失。ETag可以与If-Match标头结合使用,让服务器决定是否应该更新资源。如果ETag不匹配,则服务器通过412 (Precondition Failed)响应通知客户端。

参考:204无内容