http1.0 最早在1996使用,那个时候只是使用一些较为简单的网页上和网络请求上;
http1.1 在1999年广泛应用于现在的各大浏览器网络请求。
区别:
1、缓存处理
http1 的头部通过 if-modified-since,expires来作为缓存判断的标准
http1.1 则引入了更多的缓存控制策略 如 entity tag 等等 可共选择的缓存头
2、带宽优化和网络请求使用
http1 存在浪费带宽的情况,比如客户端只是需要某个对象的部分字段,服务器会将整个对象返回,并且不支持断点续传功能
http1.1 在头部引入了 range 头域,它允许请求资源的部分,返回码是206
3、错误通知管理
http1.1 新增了 24个错误状态响应码 如 409 请求的资源和当前资源的状态发生冲突 410 表示服务器上的某个资源将永久删除
4、host 头处理
http1 认为每台服务器都绑定一个唯一的IP地址,因此请求头并没有传递主机名,但是现在一台物理服务器上面可以存在多个虚拟主机,并且他们共享一个IP地址, 所以 http1.1 的请求信息和返回信息都支持host 头域,并且如果请求头中没有传入host 头域 就会报错 400 (badrequest)
5、长连接
http1.1 支持长连接 和流水线连接 , 在一个TCP 连接上可以传送多个http请求 ,减少建立连接和关闭连接的消耗和延迟
http1.1 默认开启 connection :keep-alive ,一定程度减少每次http请求都要创建连接的缺陷