HTTP协议发展历史
2021-01-09 09:30
标签:line 求和 优化网络 很多 通讯 字符串 put 显示 数据传输 HTTP(HyperText Transfer Protocol): 超文本传输协议。是互联网上应用最广泛的一种网络协议。 这是最早定稿的HTTP版本,这个版本中它的内容非常地简单。 这个版本和现在普遍使用的HTTP/1.1差不多,在HTTP/0.9版本基础上进行了改进。 这个版本是在HTTP/1.0的基础上增加了一些功能来优化网络连接的过程。 虽然现在还没有普及,但是毫无疑问是未来的趋势。 _ 所有数据都是以二进制进行传输的。在HTTP/1.1里面大部分的数据传输是通过字符串,所以数据的分片方式是不太一样的。在HTTP/2里面所有的数据都是以帧进行传输的。 官方测试网站 https://http2.akamai.com/demo/http2-lab.html HTTP1.1与HTTP2的对比:Compare HTTP1.1 (HTTP) vs HTTP2 (HTTPS): 可以看到分别使用HTTP/1.1和HTTP/2加载同一张由多张小图片组成的大图片:HTTP/1.1用了7.41s,而HTTP/2只用了1.47s。HTTP2比HTTP/1.1快了将近5倍。 这就是HTTP的发展历史,除此之外还包含了HTTPS协议。HTTPS其实是一个安全版本的HTTP协议,实际使用与HTTP/1.1区别不大。 本文作者:AhuntSun HTTP协议发展历史 标签:line 求和 优化网络 很多 通讯 字符串 put 显示 数据传输 原文地址:https://blog.51cto.com/14886659/2521605一、什么是HTTP?
所有www文件都必须遵守的一个标准,是以 ASCII 码传输,建立在 TCP/IP 协议之上的应用层规范。
简单点说就是一种固定的通讯规则。二、HTTP/0.9版本
而一个TCP连接里面可以发送很多个http请求(HTTP/0.9不能这么做,但是HTTP/1.1可以这么做,而且在HTTP/2这方面会更大程度地优化,来提高HTTP协议传输的效率以及服务器的性能)
所以一个TCP连接对应的是多个http请求,一个http请求肯定是在某一个TCP连接里面进行发送的,三、HTTP/1.0版本
四、HTTP/1.1版本
所以如果在建立完一个连接之后,它可以不关闭,之后新的http请求就可以一直在这个连接里面进行数据发送的话,它的性能和效率肯定会提升很多,HTTP/1.1已经实现了这个功能。
因此,如果前一个请求等待时间非常长,而后一个请求处理得比较快。这个时候后一个请求不能先发送,而是要等第一个请求数据全部发送完成之后,才能进行发送,即是串行的。等待的这部分时间就体现出了与并行传输性能之间的差距。
而这个在HTTP/2里面得到了优化。
通过host这个字段来表示两个服务都是请求到同一个物理服务器上,但是我要请求的是里面哪一个软件服务,Node.js还是Java?
这就是通过host来进行判断的。这个host头增加的好处就是,在同一个物理服务器或者同一个集群里面可以部署很多不同的web服务来,提高了物理服务器的使用效率。五、HTTP/2版本
第一个头信息的压缩。在HTTP/1.1里面每一次发送请求和返回请求,很多http头都是必须要进行完整的发送和返回的,但是这一部分头信息里面有很多的内容比如说:Headers字段、Content-Type、accept等字段是以字符串的形式保存的。
所以占用较大的带宽量。所以HTTP/2里面对头信息进行了压缩,可以有效地减少带宽使用;
第二个是推送的功能。指的是HTTP/2之前,只能由客户端发送数据,服务器端返回数据。客户端是主动方,服务器端永远是被动方。在HTTP/2里面有了”推送”的概念,也就是说服务器端可以主动向客户端发起一些数据传输。
举个例子:我们知道一个web页面加载时会要求一些html、css、js等文件,css和js文件是以链接的形式在html文本里面显示的,只有通过浏览器解析了html里面的内容之后,才能根据链接里面包含的URL地址去请求对应的css和js文件。
在HTTP/2之前,这个传输过程会包含顺序问题,需要先请求到html的文件,通过浏览器运行解析这个html文件之后,才能去发送css的请求和js的请求。
HTTP/2中有了推送功能之后,在请求html的同时,服务器端可以主动把html里面所引用到的css和js文件推送到客户端,这样html、css和js的发送就是并行的而不是串行的,整体的传输效率和性能就提高了不少。六、HTTP/2与HTTP/1.1性能对比
官网提供了多种版本的对比测试有HTTP1.1与HTTP2的比较,还有服务器端推送(server-push)不同个数之间的比较:(由于网络延迟不同,测试结果或有差异)
因为为了加载这张大图,需要请求许多的小图,HTTP/1.1采用的是串行地请求,所以速度要比采用并行请求的HTTP/2要慢上许多。
原文链接:https://www.cnblogs.com/AhuntSun-blog/p/12021886.html
上一篇:HTTP与HTTPS详解
下一篇:css面试可能会问到的问题