HTTP各个版本的区别
一、HTTP v1.0
定义了基本的协议格式以及通信方式,属于早期版本,功能不够完善。
典型特征: 无状态的短连接、方法少(GET、POST 和 HEAD)。
二、HTTP v1.1
做了功能完善,如:
新增方法: OPTIONS、PUT、PATCH、DELETE、TRACE 和 CONNECT。
新增头部字段: Host:解决多域名被解析到同一个IP导致无法得知访问该IP下哪个域名的问题,Connection:用于连接保活,Transfer-Encoding:分块传输。
管线化(pipelining): 即:支持批量请求,客户端未收到响应的情况下可以在同一个连接上继续发起其他请求,服务端需要按序响应,解决了线头阻塞问题(前一个请求未收到回复,后一个请求无法发起)。备注:只有幂等的 GET 和 HEAD 等能管线化。
三、HTTP v2.0
做了性能优化:
典型特征: 新增SPDY帧层、连接多路复用、头部压缩、服务器推送。
四、HTTP v3.0
HTTP3.0又称为HTTP Over QUIC,即:基于谷歌QUIC协议的HTTP,QUIC基于UDP。