HTTP协议

2017/3/14 23:38 下午 posted in  TCP/IP HTTP协议  

HTTP/1.1

1.1相比1.0的变化:

  1. Connection: keep-alive 持久连接(默认)
  2. pipelining 管道机制(同一个TCP连接中,客户端可以同时发送多个请求,但服务端还是按顺序响应)
  3. Content-Length字段
  4. Transfer-Encoding: chunked 分块传输编码
  5. 头信息增加了Host字段
  6. 新增了许多动词方法:PUT、PATCH、HEAD、OPTIONS、DELETE。

缺点:
虽然允许复用TCP连接,但数据通信是按次序进行的,可能会出现“队头堵塞”。

HTTP/2

基于SPDY协议。

2相比1.1的变化:

  1. 二进制协议,头信息、数据体都是二进制;而1.1头信息肯定是文本,数据体可以是文本也可以是二进制。
  2. 多工。复用TCP连接,在一个连接中,客户端和服务端都可以同时发送多个请求或回应,且不用按照顺序一一对应,避免了“队头堵塞”。
  3. 数据流。每个请求或回应的数据包,称为一个数据流。每个数据流都有一个独一无二的编号。数据流发送到一半的时候,客户端和服务端都可以发送信号取消该数据流。
  4. 头信息压缩。头信息压缩后发送,并且客户端和服务端同时维护一张头信息表,所有字段都会存入该表,生成一个索引号,后续客户端只发送索引号。
  5. 服务器推送。

参考

HTTP 协议入门
HTTP协议