HTTP协议

概要

提示:以http协议的发展和解决的问题来说明http1与http2区别及发展,这里用最简洁的讲述来概括,来说明http的发展。如果你对于官方的冗文,阅读有点失去耐心,不妨看看我的博客,是否能让你眼前一亮,好的这就是coffee&code

这里就没必要概述了,进入正题!

HTTP1与HTTP2的相同点

  • 第一:首先http1,http1.1和http2都是http协议,既都是超文本传输协议。都基于tcp应用层协议。都是三次握手。
  • 第二:http协议都是单协议,也就是单工工作,既浏览器只能向服务器请求资源,服务器才能将数据传输给浏览器。服务器不能主动向浏览器传递数据,即使是http2也是,http2新特性就是 server push 服务器推送,服务器可以对浏览器单个请求返回多个响应。

提示:server push 原理

关于server push原理:客户端浏览器先发请求,我给你推送多个响应。即使他能实现静态服务器,也是浏览器先请求 (简单的比如:index.html),服务器用http2配置静态服务器里面配置静态资源正则,服务器发现index.html里还包含了 css,js文件,服务器会告诉浏览器这里还有style.css和index.js文件你可能需要,浏览器接收到index.html后,解析发现需要那两个文件,正好服务器说可以推送这两个文件,浏览器就不需要再次发送请求了,直接接收服务器的推送。`

HTTP1与HTTP2的区别

提示:其区别,正是其发展史及解决问题的演进过程
高校课程会给你讲清其来龙去脉,某某,或者某组织,解决了什么问题,又遇到什么问题,当然我们这里简要概括一下。对此你可能会更感兴趣!

一句话:就是每次升级,都是弥补上一个版本的不足。

  • Http1是 客户端发送一次请求,服务方进行相应的回答,回复之后就会断开链接,当下一次请求时再重新发送请求。
    弊端就是频繁建立连接,比如index.html,附属静态资源请求也需要客户端请求并建立连接,消耗服务器性能。也影响效率。
  • http1.1是http1.0的升级,提出短时间内的长连接。
    就是改善同一个客户端发送一次请求,服务端应答这次请求回复之后就端开连接,同一个客户端下次请求又建立连接,同一个客户端请求,服务端频繁建立连接的问题。
    最主要就是提出:长连接。有效的提升了性能。长连接是短时间保持连接,保持tcp不断开,指的tcp连接。
    弊端还是有的,它的处理请求的方式仍然是顺序执行,没有解决同步任务阻塞的问题。如果前面的请求过于复杂,就会出现时间过长,影响后续请求。
  • http2
    第一个优点:采用了多路复用技术,多个请求信号可以再一条通道上同时传输,每一个请求的帧,头部都会带有帧标识符。性能提升。解决了http1.1 请求延时和请求阻塞的问题
    第二个优点:新特性就是server push 服务器推送。就是服务器端可以配置静态服务器了,对于浏览器请求,可以对 请求的文件,文件内是否包含 其他静态资源,实现一个请求多个响应。而且对于同源请求的连接数量没有限制,而http1限制最多连接数6个【我的上一篇文章关于sse有关于这方面的解决方案及实例】。
    第三个优点:http2对于消息头进行压缩,可以节省很多带宽资源。而http1.1时发送请求,每次都携带非常多冗余的头信息,浪费资源。

对头部信息进行了压缩:一方面使用gzip和compress进行头部压缩,另一个方面,客户端和服务器端同时维护一张头信息表,所有的字段都会存入这张表中,生成一个索引号,以后就不需要再发送同样的字段了,只发送索引号。提升了速度。单单仅靠压缩是不能明显提升速度的,而是依靠头信息表的索引号与服务器端的头信息索引号对比。一次压缩后,生成头信息表即可。

  • 到html5时代后,对于http2在一些场景下,还是不足的,我们服务器是无法主动推送信息给浏览器的。比如 单向工作,使用轮询和xhr也依然无法有效解决实时响应信息交互的问题,所以在2008年诞生了websocket,2011年成为国际标准。Ws协议是全双工工作。服务器和浏览器数双向通信的。Ws也是建立在应用层tcp协议之上,服务器端实现也比较容易。数据请求高效率,可以发送文本和二进制数据,没有同源限制。可以跨端通信。协议标识是ws如果加密是wss。

总结

http的发展简要概括至此,任何一项技术的发展,都是伴随的解决问题,提出问题,再解决问题,更新迭代发展起来,掌握其发展史,你也就知道了其应用的场景。

  • 33
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值