计网-http

长连接和短连接

长连接和短连接

其实HTTP长连接和短连接的本质上是TCP的长连接和短连接。

HTTP1.0是默认短连接的,也就是说服务器和客户端的每一次HTTP操作,就建立一次连接,当任务结束,就中断了。

而在HTTP1.1默认都是长连接,响应头里面会多一个字段:Connection:keep-alive。这是用长连接时,当客户端和服务器建立连接后,并不会任务完成就立马断开,而是会有一个保持时间,连接超过这个时间了,才会去断开。在保持期间,会通过发送心跳包来保证服务器不会断开连接,心跳包就是每隔一段时间,发送一个非常简单的包过去,既不会消耗服务器大量的资源,又能保证服务器不会断开连接

长连接的好处:省去较多的TCP建立和关闭的操作,减少浪费,节约时间。但是如果客户端很多,这样短时间内非常多的客户端都和服务器保持着连接,这样服务器迟早会撑不住。

长连接用于操作频繁的点对点通讯,而且连接数不能太多。

断点续传

就是说在上传或者下载文件的时候,我们人为的将文件划分为几个部分,每个部分都采用一个线程进行上传或者下载,当网络故障恢复后,可以继续从以上传或下载的部分开始上传或下载。而不具备断点需传功能的资源,当从网络故障恢复后,就只能在从头开始。

HTTP1.1开始支持了获取文件的部分内容。断点需传的字段就是Range和Content-Range。

Range用于请求头中,用于指定第一个字节的位置和最后一个字节的位置。

Accept-Ranges用于响应头中,返回当前可接受的范围以及文件总大小。

但是在实际应用中会存在这样一种情况,在客户端发起请求时,如果URL对应的内容在服务器中已经发生了变化,这样续传下来的数据肯定是错的。。这个时候我们就需要用到我们缓存中的字段,比方说Last-Modified或者ETag,但那是在断点续传中真正的解决这个问题的字段是If-Range,他在这里面保存了Last-Codified或者ETag的值。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值