作用与功能 作用是什么意思( 二 )


关闭连接
老板在下达完命令,并且员工给予响应之后,双方会挂断电话 。这个过程就是关闭连接 。
客户端或服务端都可以关闭连接 。每个请求都是用一个单独的网络连接 。
特别的是:服务器不回记忆前面一次连接或者其结果,这种不记忆过去请求的协议被称为无状态(stateless)协议 。

作用与功能 作用是什么意思

文章插图

?上图就是一次淘宝网的HTTP请求的过程 。其中显示了request(请求)和response(响应)的所有信息 。
作用与功能 作用是什么意思

文章插图

作用与功能 作用是什么意思

文章插图

作用与功能 作用是什么意思

文章插图

作用与功能 作用是什么意思

文章插图

HTTP协议的迭代
前面我们把HTTP通信比喻成打电话,严格一点来说,HTTP/2更像是现在的打电话 。HTTP协议主要的版本有3个,分别是HTTP/1.0、HTTP/1.1和HTTP/2 。
HTTP/1.0
1996年5月,HTTP/1.0 版本发布,为了提高系统的效率,HTTP/1.0规定浏览器与服务器只保持短暂的连接,浏览器的每次请求都需要与服务器建立一个TCP连接,服务器完成请求处理后立即断开TCP连接,服务器不跟踪每个客户也不记录过去的请求 。
这种方式就好像我们打电话的时候,只能说一件事儿一样,说完之后就要挂断,想要说另外一件事儿的时候就要重新拨打电话 。
HTTP/1.0中浏览器与服务器只保持短暂的连接,连接无法复用 。也就是说每个TCP连接只能发送一个请求 。发送数据完毕,连接就关闭,如果还要请求其他资源,就必须再新建一个连接 。
我们知道TCP连接的建立需要三次握手,是很耗费时间的一个过程 。所以,HTTP/1.0版本的性能比较差 。
HTTP/1.1
为了解决HTTP/1.0存在的缺陷,HTTP/1.1于1999年诞生 。相比较于HTTP/1.0来说,最主要的改进就是引入了持久连接 。所谓的持久连接即TCP连接默认不关闭,可以被多个请求复用 。
由于之前打一次电话只能说一件事儿,效率很低 。后来人们提出一种想法,就是电话打完之后,先不直接挂断,而是持续一小段时间,这一小段时间内,如果还有事情沟通可以再次进行沟通 。
客户端和服务器发现对方一段时间没有活动,就可以主动关闭连接 。或者客户端在最后一个请求时,主动告诉服务端要关闭连接 。
HTTP/1.1版还引入了管道机制(pipelining),即在同一个TCP连接里面,客户端可以同时发送多个请求 。这样就进一步改进了HTTP协议的效率 。
作用与功能 作用是什么意思

文章插图

?
也就是说,现在打电话,一个电话里面可以吩咐多件事儿了 。但是对于执行者来说,还是需要按照顺序,先执行完一件事儿以后再执行另外一件事儿 。
有了持久连接和管道,大大的提升了HTTP的效率 。但是服务端还是顺序执行的,效率还有提升的空间 。
HTTP/2
HTTP/2 是 HTTP 协议自 1999 年 HTTP 1.1 发布后的首个更新,主要基于 SPDY 协议 。
HTTP/2 为了解决HTTP/1.1中仍然存在的效率问题,HTTP/2 采用了多路复用 。即在一个连接里,客户端和浏览器都可以同时发送多个请求或回应,而且不用按照顺序一一对应 。能这样做有一个前提,就是HTTP/2进行了二进制分帧,即 HTTP/2 会将所有传输的信息分割为更小的消息和帧(frame),并对它们采用二进制格式的编码 。
也就是说,老板可以同时下达多个命令,员工也可以收到了A请求和B请求,于是先回应A请求,结果发现处理过程非常耗时,于是就发送A请求已经处理好的部分,接着回应B请求,完成后,再发送A请求剩下的部分 。A请求的两部分响应在组合到一起发给老板 。


特别声明:本站内容均来自网友提供或互联网,仅供参考,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。