REST API响应中的校验和


Checksums in REST API responses

发送包含响应内容的校验和是个好主意吗?如果是这样的话,计算校验和最常见的方法是什么?

示例:

HTTP/1.1 200 OK
Date: Thu, 30 Jun 2011 21:32:20 GMT
Server: Apache
Connection: close
Content-Type: application/json
22 
{test:1}

HTTP的底层协议是TCP,它已经有了校验和机制,所以我认为它没有用。

如果您仍然需要这种东西,您可以计算正文内容的SHA1签名,并将其作为自定义标头包含在响应中,类似

HTTP/1.1 200 OK
Date: Thu, 30 Jun 2011 21:32:20 GMT
Server: Apache
Connection: close
Content-Type: application/json
X-Checksum: 40325305549f7a09edb51ff8df9528ffd8434ac6

您可以始终使用Content-MD5标头(请参阅RFC 2616&1864)。

为什么?基本上,TCP几乎可以为您处理这个问题(因为它应该是一个可靠的协议),所以校验和不太必要,而且可以说是多余的。

然而,如果您坚持这样做,我只需添加某种类型的X-Checksum HTTP标头。