HTTP:1.0/1.1/2.0版本之间的区别

1.0/1.1更多的请求/响应头

Host
http1.1在1.0的基础上扩充了请求/响应头,例如可以通过新增的Host字段指定访问服务器上的哪个web站点
Connection长连接
http1.0需要手动设置connection字段为keep-alive才能建立长连接,http1.1客户端和服务端都默认支持长链接,这样在请求同源资源时就省去了tcp三次握手的时间,减少了建立连接的时间。
如果request或response中任何一方的connection为close则代表正在使用的tcp连接在当前请求结束后会断开连接,再进行连接时必须重新建立tcp连接
参考
断点续传
客户端通过range字段明确需要续传的片段,服务端收到断点续传请求从指定位置开始传输并在response header中添加Content-Range,此时http状态码为206 Partial Content
如果在客户端发起续传请求时服务端文件发生变化,可以通过为文件增加唯一标识ETag来解决,同时校验If-Range字段
缓存
http1.0只用expires字段可以实现浏览器强缓存
http1.1使用Cache-Control实现多种缓存机制:max-age实现浏览器强缓存;public/private可以决定是否可以被中间代理(CDN等)缓存;no-cache使用协商缓存;no-store则不使用缓存
身份认证
http1.1新增了Authorization字段来填充用户验证信息
状态管理
cookie

1.1/2.0

多路复用
http1.1中虽然有长链接解决了tcp复用问题,但是仍然存在请求阻塞。因为每个TCP连接一次只允许一个请求通过,请求返回后后面的请求才会开始,这样前面的请求就会阻塞后面的请求。
http2.0请求以stream的方式传输,每个stream有自己的唯一标识,服务器通过这个唯一标识来进行响应。在统一域名下开启一个tcp的connection后,后续请求都可以复用这个connection并可以同时发送
关闭时机:1.用户离开页面2.服务端主动关闭,这就看不同服务器的具体实现机制
参考
首部压缩
http2.0使用算法对头部进行压缩,减少数据体积,加快传输速度
服务器推送
服务器推送技术使得服务器可以对一个客户端请求发送多个响应,主动向客户端推送没有请求的数据,这些数据会缓存在客户端,等待使用(不同页面间共享同源请求的缓存资源)

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值