内容编码---压缩传输
内容编码指明应用在负责解码内容上的编码格式,并保持实体信息原样压缩,编码之后的实体由客户端接收并解码
常用的内容编码为以下四种:
gzip(GNU zip) ; compress(UNIX 系统的标准压缩) ; deflate(zlib) ; identity(不进行编码)
分块传输编码---分割发送的编码
把实体主体分块的功能称为分块传输编码,确保在HTTP通信过程中,传播的数据过大时浏览器能够逐步显示页面。
分割后的每一块数据会用十六进制来表示大小,实体的最后一块数据会使用0(CR+LF)来标记结尾。
分割后的数据块最后会由接收到的客户端进行解码恢复成原来的实体主体。
多部分对象集合---容纳多份不同类型的数据
包含如下对象:multipart/form-data ; multipart/byteranges 。
在HTTP报文中使用多部分对象集合时要在首部字段中加上Content-type。
范围请求---获取部分内容
范围请求服务于HTTP可恢复的机制,,所谓恢复是指从之前下载的中断处恢复下载。
要实现该功能需要指定下载的实体范围:
Range: bytes=5001-10000//表示5001到10000字节
Range: bytes=5001-//表示5001字节之后全部的
Range: bytes=0-3000,5000-7000//表示一开始到3000字节和5000到7000字节的多重范围
---响应---
针对范围请求,响应会返回状态码为206 Partial Content的响应报文,对于多重范围,响应会在首部字段Content-Type标明multipart/byteranges后返回响应报文。
若服务器端无法响应范围请求,则会返回状态码200 OK和完整的实体内容??
内容协商---返回最合适的内容,以语言、字符集、编码方式等为基准判断合适的响应的资源
类型*3:服务器驱动协商(服务器自行处理);客户端驱动协商(用户自行选择);透明协商(前两个的结合体)