HTTP站在TCP之上
HTTP是建立在TCP之上,HTTP协议的瓶颈以及优化技巧其实都是基于TCP协议的本身特性。
HTTP的应用场景
- HTTP诞生主要是用于web端内容获取,直至今天几乎所有的web网站都继续用着HTTP请求,但今天的网站内容比之前更加精美,内容更加丰富,迫切对HTTP进行优化。
- 大量的移动互联网的客户端app也使用了HTTP,不同的性质的app对HTTP的使用差异很大,对于电商类app,几乎所有的内容获取多采用该协议,而对于类似微信这类IM软件,主要用于图片语音下载。
HTTP历史
HTTP/0.9
HTTP最早版本是在1991年发布的0.9版本,该命令只有一个GET命令,当TCP connection 之后,会向客户端回应HTML格式的字符串。发送完毕后,关闭TCP链接。
HTTP/1.0
1996年,HTTP/1.0版本发布,大大丰富了HTTP传输内容,除了文字,可以发送图像、视频、二进制等,这为互联网的发展奠定了基础。
除了GET命令,还引入了POST与HEAD,并且请求格式与回应格式也变了,除了数据部分,每次通信都包含信息头(HTTP header),用来描述数据,编码等。
与HTTP/0.9一样,每个TCP只能发送一个请求,数据传输完毕后就会关闭掉链接。为了解决这个问题,有些浏览器使用了Connection:keep-alive字段,链接的保持时间由Server端决定。
HTTP/1.1
1997年,HTTP/1.1发布,作为一个子版本,更多是对HTTP/1.0的完善。
与HTTP/1.0最大的区别,就是引入1.0中非规范的持久链接,即Connection:keep-alive
并引入了管道机制,HTTP/1.1允许在同一个TCP连接中,客户端同时发送多个请求。
尽管HTTP/1.1允许了长连接并使用了Pipelining,但数据通信仍是顺序的。这也是为很么很多老前端跟新人介绍的时候,会要求你尽量将.js文件放在文件的末尾。就是为了避免加载js过慢而影响到文件的加载。
HTTP/2
2015年,HTTP/2发布,相比HTTP/1.1,这又是一次比较大的升级,将大大改善HTTP请求的效率并减少带宽浪费。
网友评论