2011-11-23 126 views
10

制作一个主要基于大文件上传/下载的REST Web服务器,我希望能够检查文件的完整性。我相信正确的做法是使用Content-MD5 HTTP header [0],这在aws experience [1]中很有用。然而,令我非常沮丧的是,我最近得知它(被?)弃用[2]。由于Content-MD5已被弃用,消息完整性使用HTTP标头进行检查?

弃用讨论没有给出任何解决方法的提示,所以我问你:

如果我还是决定使用一个Content-MD5 HTTP头?

我是否应该使用具有相同含义的ETag(base64编码的md5sum)?

我应该使用?md5sum = XXX参数吗?

有没有更好的解决方案?

感谢您的见解。

此致 B.

[0] https://webmasters.stackexchange.com/questions/2924/

[1] http://developer.amazonwebservices.com/connect/thread.jspa?threadID=22709

[2] http://trac.tools.ietf.org/wg/httpbis/trac/ticket/178

回答

1

添加自定义标题,称为说X-YourService-Integrity。这使得它明确表示它是一个特定于您的服务的系统,并且允许您将来使用除MD5之外的完整性检查机制(例如SHA1)。它也避免了你必须“重载”现有的相似但不是你想要的机制。

+0

谢谢你的回答。 – user687718

+0

谢谢你的回答。但是,在传输过程中可以删除自定义的http头,并且我看不出ETag可以用于任何完整性检查的优势,因为验证器实现由标准http://www.w3.org/Protocols保持打开/rfc2616/rfc2616-sec13.html#sec13.3.3 – user687718

+0

为什么在传输过程中会丢弃标题? –