Http的长短连接小总结!!!

一·长连接

http长连接是指http的请求头和响应头的均有connection: keep-alive的请求,
也就是客户端和服务端均为keep-alive的请求.

实际上,http是请求/响应式的,无长短之分,长连接实际上是指TCP的连接为长连接。
如此,多个http请求就可以复用一个TCP连接,减少了了TCP连接建立和断开的消耗。

http的长连接是从http1.1开始的,http1.0没有keep-alive这个设置。

长连接相应字段

connection:keep-alive 请求为长连接
timeout:30 TCP连接超时时间,超时后会断开连接
max:5 TCP连接被http请求最大复用次数,每有一个http请求用它,max会减1,直至max为0,强制断开连接

二·短连接

短连接是指三次握手建立连接之后,client向server发送消息,然后server回复client消息,一次读写操作完成之后,发起断开连接请求。一般情况下,close动作是由client发起的。

短连接多用于操作频繁,点对点的通讯,而且连接数不能太多的情况。每个TCP连接的建立都需要三次握手,每个TCP连接的断开要四次握手。

如果每次操作都要建立连接然后再操作的话处理速度会降低,所以每次操作后,下次操作时直接发送数据就可以了,不用再建立TCP连接。例如:数据库的连接用长连接,如果用短连接频繁的通信会造成socket错误,频繁的socket创建也是对资源的浪费。

三·总结

长连接与短连接的不同主要在于client和server采取的关闭策略不同。短连接在建立连接以后只进行一次数据传输就关闭连接,而长连接在建立连接以后会进行多次数据数据传输直至关闭连接(长连接中关闭连接通过Connection:closed头部字段)。

二者关闭策略的不同,就产生了长连接的优点:

  • 通过开启、关闭更少的TCP连接,节约CPU时间和内存
  • 通过减少TCP开启引起的包的数目,降低网络阻塞。

二者所应用的具体场景不同。短连接多用于操作频繁、点对点的通讯,且连接数不能太多的情况。数据库的连接则采用长连接。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

苏然HHash#

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值