HTTP报文结构
HTTP报文大致可分为报文首部和报文主体两块。如下图所示
HTTP报文报文的结构.png
请求报文和响应报文的结构.png
请求报文(上)和响应报文(下)的实例.png
请求报文和响应报文的首部内容由一下数据组成:
请求行:包含用于请求的方法,请求URL和HTTP版本。
状态行:包含表明响应结果的状态码,原因短语和HTTP版本。
首部字段:包含表示请求和响应的各种条件和属性的各类首部。一般有四种首部:分别是:通用首部,请求首部,响应首部和实体首部。
-
报文主体和实体主题的区别
报文:(message),是HTTP通信中的基本单位,由8位组字节流组成,通过HTTP通信传输。
实体:(entity)作为请求或响应的有效载荷数据被传输,其内容由实体受不和实体主题组成。
HTTP报文的主体用于传输请求或响应的实体主体。通常,报文主体等于实体主体,只有当传输中进行编码操作时,实体主体的内容发生变化,才导致它和报文主体产生差异。
HTTP发送多种数据的多部分对象集合
HTTP协议中采纳了多部分对象集合,发送的一份报文主体内可还有多类型实体,通常是在图片或者文件等上传时使用。
多部分对象集合包含的对象如下:
- multipart/form-data:在web表单文件上传时使用。
-
multipart/byteranges:状态码206(partial Content,部分内容)响应报文包含了多个范围的内容时使用。
(笔记来自:《图解HTTP》人民邮电出版社 书籍)