我只是想知道,在HTTP 1.1规范中,有一个字段Content-MD5。但是,由于HTTP在整个OSI堆栈中搭载TCP / IP,并且假设TCP / IP具有Header Checksum以确保检查所有传输的数据,我很好奇为什么在HTTP中需要Content-MD5 1.1规格?我误解了或遗漏了什么吗?
对于我提到的HTTP / 1.1标头规范:
http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.15
对于TCP / IP规范,我在3.1节中提到了
http://www.ietf.org/rfc/rfc791.txt
对我来说,通过在HTTP标头中添加Content-MD5,我们只是在服务器上添加了更多工作。为什么不直接使用TCP / IP已经提供的机制?
欢呼并提前感谢所有人:)
答案 0 :(得分:5)
HTTP内容MD5值独立使用。
TCP校验和非常弱,并且考虑到Internet上传输的数据量,很可能存在TCP校验和值的静默失败。
但是,如果你真的在乎,你想要使用更强大的东西,比如TLS。
答案 1 :(得分:4)
我认为这是为了帮助客户确定代理服务器是否对传输中的内容进行了加扰。您仍然可以拥有有效的TCP数据包但内容无效。