一般一个网页是由多个元素组成的,浏览器在向服务器发起请求以后,服务端每次只能返回一种资源,响应头中的Content-Type属性描述了返回资源的类型。因此,我们所看到的一个完整的网页往往需要请求多次。
这里就分为两种情况了,一种是 “ 建立连接—浏览器请求—服务端响应—断开连接 ”,每次获取资源都需要建立新的连接,这种方式我们称为短连接;另一种就是 第一次请求的时候就建立好连接,后续获取资源都是通过这条连接来获取资源,这种方式我们称为长连接。
1、获取资源的过程
上面提到,一个网页由多个元素或者资源组成,要获取到一个完整的网页往往需要请求多次。首先,和服务端建立起连接,其次,请求这个网页的框架(html资源),随后依次申请图片(jpg资源)、视频等其他资源。我们只要发起第一次请求,后续的资源请求由浏览器来自动发送。
2、长连接和短连接
http协议是基于tcp协议的,获取资源时要和服务端建立起连接,站在应用层的角度,连接类型有两种,分别是短连接和长连接。
(1) 短连接
短连接分为了三步:
第一步,浏览器向服务器发起一次请求来申请资源
第二步,服务器响应浏览器并返回资源
第三步,断开连接
因为一个网页的资源要获取多次,所以短连接状态下,需要重复上述操作,直至获取完一个网页的所有资源。
(2) 长连接
http/1.0版本使用的都是短连接,短连接需要频繁的跟服务端建立起连接,这样做是特别耗时的!为了减少频繁建立连接,在http/1.1版本引入了 长连接 方式,长连接建立起一次连接以后,这个连接会一直存在,不会断开。