用于 HTTP 协议交互的信息被称为 HTTP 报文。请求端(客户端)的HTTP报文叫作请求报文,响应端(服务器端)的叫作响应报文。web
HTTP报文大体可分为报文首部和报文主体两块。一般,不必定要有报文主体。、浏览器
请求报文和响应报文的首部内容由一下数据组成。服务器
HTTP在传输过程当中能够按照原貌传输,也能够在传输过程当中经过编码来提高传输速率,能有效地处理大量的访问请求,可是编码会消耗更多的CPU资源。ide
HTTP报文的主体用于传输请求或响应的实体主体。一般,报文主体等于实体主体。只有当传输中进行编码操做时,实体内容发生变化,才致使二者产生差别。编码
内容编码指明应用在实体内容上的编码格式,并保持实体信息原样压缩。内容编码后的实体由客户端接收并负责解码。 常见的内容编码:gzip、compress、deflate、identity。orm
在传输大容量数据时,经过把数据分割成多块,可以让浏览器逐步显示页面。这种把实体主体分块的功能称为分块传输编码。对象
HTTP协议中也采纳了对部分对象集合,发送的一份报文主体内可含有多类型实体。一般是在图片上或文本文件等上传时使用。须要在首部字段加上Content-type。图片
从以前下载中断处恢复下载。 要实现该功能,须要指定下载的实体范围。指定范围发送的请求叫作范围请求。 执行范围请求时,会用到首部字段Range来指定资源的byte范围。ip
针对范围请求,响应会返回206.多重范围请求,响应会在首部字段Content-type标明multipart/byteranges后返回响应报文。 若是服务端没法响应范围请求,则返回200 OK 和完整的实体内容。资源
当浏览器的默认语言为英文或者中文,访问相同的URI的web页面时,则会显示对应的英语版或中文版的web页面,这样的机制成为内容协商。
内容协商机制是指客户端和服务端就响应的资源内容进行交涉,而后提供给客户端最为适合的资源。以语言、字符集、编码方式等为基准判断响应的资源。
某些首部字段就是判断的基准: Accept、Accept-Charset、Accept-Encoding、Accept-Language、Content-Language。
内容协商技术有如下类型: 服务器驱动协商、客户端驱动协商、透明协商。