今天一天给18级新生讲算法,但是呢日更还是得维持,所以就晚上更新一个简单一点的内容。今天的内容主要浅要分析http报文
一 请求报文和结构
由上图可知,请求报文和响应报文的内容由下面的数据组成。
- 请求行
用于表示请求的方法,请求的URI和HTTP版本 - 状态行
包含表明响应结果的状态码,原因短语和 HTTP 版本。 - 首段字段
包含表示请求和响应的各种条件和属性的各类首部。
一般有4种首部,分别是:通用首部、请求首部、响应首部和实体 首部。 - 其他
可能包含 HTTP 的 RFC 里未定义的首部(Cookie 等)
二 HTTP传输与压缩
在http协议中有一种被称为内容编码的功能可以进行内容压缩。常用的内容编码如下:
- gzip(GNU●zip)
- compress(UNIX 系统的标准压缩)
- deflate(zlib)
- identity(不进行编码)
三 分割发送的分块编码
分块传输编码会将实体主体分成多个部分(块)。每一块都会用十六进制来标记块的大小,而实体主体的最后一块会使用“0(CR+LF)” 来标记。
使用分块传输编码的实体主体会由接收的客户端负责解码,恢复到编码前的实体主体。
HTTP/1.1 中存在一种称为传输编码(Transfer Coding)的机制,它可以在通信时按某种编码方式传输,但只定义作用于分块传输编码中。
四 获取部分内容的范围请求
http协议中该部分的功能是为了在网速较慢的情况下,能够对大文件断点重传。通过在首部定义Range字段即可完成该功能。
1 | Range: bytes=5001-10000 单范围 |