HTTP协议的发展历史

HTTP/0.9

  a.只有一个命令GET

  b.没有HEADER等描述数据的信息

  c.服务器发送完毕,就关闭TCP链接

HTTP/1.0

  a.增加了很多命令,比如说POST 、PUT

  b.增加status code和header。

    status code是用来描述,服务端处理我们的请求后的它的一个状态。

    header 记录了不管是发送和请求的数据的描述,以及如何对数据进行操作的方法。

    多字符集支持、多部分发送、权限、缓存等。

HTTP/1.1

  a.持久连接

      之前的HTTP协议,当服务器发送数据完毕后,就关闭了TCP链接,而每开启

    一次链接就要进行客户端和服务端的三次握手,非常消耗性能延迟也非常 高。

  b.pipeline

      客户端可以在同一个链接里面发送多个请求,但是在服务端一次性只能响应一

    个。服务端对发送过来的请求,会按照先后顺序响应。[如果前一个请求处理的时间

    比较长,而后一个请求的很短,总的响应时间还是很长,这就是串行和并行的差异]。

  c.增加一些其他的HTTP头和命令,比如说host

      通过对host头的判断, 可以让我们在同一个物理服务器上跑多个web服务。比

    如说,一个node.js的web服务,一个java的web服务。

 HTTP2

  a.所有的数据以二进制传输

      HTTP/1.1是通过字符串进行数据传输,数据的分片方式不一样。HTTP2里面的

    数据,是通过帧进行传输的。所以HTTP2里同一个连接发送多个请求不再需要按照

    顺序来进行响应,可以并行处理多个请求。

    b.头信息压缩以及推送等提高效率的功能

      推送是指,服务端不再是被动响应,也可以主动发送数据给客户端。

      

原文地址:https://www.cnblogs.com/ladybug7/p/12331421.html