# Content-MD5
> 作者:肖鹏-SpiritLing 时间:2019-11-23
```http
Content-MD5: ZTEwYWRjMzk0OWJhNTlhYmJlNTZlMDU3ZjIwZjg4M2U=
```
首部字段 `Content-MD5` 是一串由MD5算法生成的值,其目的在于检查报文主体在传输过程中是否保持完整,以及确认传输到达。
对报文主体执行 MD5 算法获得218位二进制数,再通过 Base64 编码后将结果写入 `Content-MD5` 字段值。由于 HTTP 首部无法记录二进制值,所以要通过 Base64 编码处理。为确保报文有效性,作为接受方的客户端会对报文主体在执行一次相同的MD5算法。计算出的值与字段值作比较候鸟,即可判断出报文主体的准确性。
采用这种方法,对内容上的偶发生性改变是无从查证的,也无法检测出恶意篡改。其中一个原因在于,内容如果能够被篡改,那么同时意味着 `Content-MD5` 也可重新计算然后被篡改。所以处在接受阶段的客户端是无法意识到报文主体以及首部字段 `Content-MD5` 是已经被篡改过的。
> 作者:肖鹏-SpiritLing 时间:2019-11-23
- 首语
- 第一章 HTTP协议及网络基础
- 第二章 协议返回状态码
- 第三章 HTTP通用首部字段
- 第一节 Cache-Control字段
- 第二节 Connection 字段
- 第三节 Date 字段
- 第四节 Pragma 字段
- 第五节 Trailer 字段
- 第六节 Transfer-Encoding 字段
- 第七节 Upgrade 字段
- 第八节 Via 字段
- 第九节 Warning 字段
- 第四章 HTTP请求首部字段
- 第一节 Accept 字段
- 第二节 Accept-Charset 字段
- 第三节 Accept-Encoding 字段
- 第四节 Accept-Language 字段
- 第五节 Authorization 字段
- 第六节 Expect 字段
- 第七节 From 字段
- 第八节 Host 字段
- 第九节 If-Match 字段
- 第十节 If-Modified-Since 字段
- 第十一节 If-None-Match 字段
- 第十二节 If-Range 字段
- 第十三节 If-Unmodified-Since 字段
- 第十四节 Max-Forwards 字段
- 第十五节 Proxy-Authorization 字段
- 第十六节 Range 字段
- 第十七节 Referer 字段
- 第十八节 TE 字段
- 第十九节 User-Agent 字段
- 第五章 HTTP响应首部字段
- 第一节 Accept-Ranges 字段
- 第二节 Age 字段
- 第三节 ETge 字段
- 第四节 Location 字段
- 第五节 Proxy-Authenticate 字段
- 第六节 Retry-After 字段
- 第七节 Server 字段
- 第八节 Vary 字段
- 第九节 WWW-Authenticate 字段
- 第六章 HTTP实体首部字段
- 第一节 Allow 字段
- 第二节 Content-Encoding字段
- 第三节 Content-Language 字段
- 第四节 Content-Length 字段
- 第五节 Content-Location 字段
- 第六节 Content-MD5 字段
- 第七节 Content-Range 字段
- 第八节 Content-Type 字段
- 第九节 Expires 字段
- 第十节 Last-Modified 字段
- 第七章 Cookie相关和其他的首部字段