实体、实体主体和报文主体
HTTP 报文可以传输很多类型的数字数据:图片、音频、视频、HTML 文档等;
作为请求或响应的有效载荷数据(补充项)被传输,
对于HTTP 报文来说,这些要传送的文件都是实体;当这些实体作为请求或响应报文的一部分存在时(即作为报文的有效载荷数据被传输时),其内容分为:
- 实体首部
实体首部会放在报文首部之中,用于描述实体的一些信息(实体首部字段); - 实体主体(payload body)
实体的数据部分,存放在报文主体中;
一般情况下 HTTP报文的报文主体就是实体主体;但是在分段传输时下,会在实体主体部分中插入特殊信息;此时报文主体包括“特殊信息”,但是实体主体部分并不包括;
只要记住:报文主体是报文第一个空行以后的所有部分;
所以在HTTP 报文中用 实体首部 和 实体主体 表示了要传输的文件;
注意:
- 有时为了提高传输效率,要对实体主体进行编码,比如说:一个图片按原文传输需要5个字节,编码以后传输就是3个字节了;HTTP协议中有一种被称为内容编码的功能也能进行类似的操作;
然后将编码的文件存放在报文主体,这相当于报文主体已经改变了,而且实体主体也改变了;
但是实体没有变,因为可以在实体首部指定编码信息(Content-Encoding),然后可以通过 实体首部 和 实体主体 还原实体;相当于实体只是换了一个表现形式,表达的信息没有变;