HTTP/0.9 (1991)
1.只有一个命令GET。
2.没有HEADER等描述数据的信息。
3.服务器发送完毕, 就关闭TCP连接。
HTTP/1.0 (1996)
1.增加了POST, PUT , Header等命令
2. 增加了 status code (处理请求的状态)和 Header(信息)
3.支持了多字符集、 多部分发送、权限、 缓存等
HTTP/1.1 (1999)
1.增加了持久连接(长连接)。即,HTTP 1.0需要使用keep-alive参数来告知服务器端要建立一个长连接,而HTTP1.1默认支持长连接。
HTTP是基于TCP/IP协议的,创建一个TCP连接是需要经过三次握手的,有一定的开销,如果每次通讯都要重新建立连接的话,对性能有影响。因此最好能维持一个长连接,可以用个长连接来发多个请求。
2.pipeline。 可以在同个链接里 发送多个请求。但1.1服务端请求进入是需要按照顺序进行的。在HTTP2.0中会进行优化。
3.增加host域和其他一些命令。
4.支持只发送头信息,服务器认为客户端有权限请求服务器,则返回100,否则返回401。客户端如果接受到100,才开始把请求body发送到服务器。
5.可以声明保持TCP连接状态
HTTP/2.0(2015)
1.所有数据以二进制传输。
2.同一个连接里面发送多个请求不再需要按照顺序来。
3.头信息压缩以及推送等提高效率的功能。
4.TCP连接支持并发, 多个请求只用创建一个TCP协议