网络编程:HTTP:长短链接

长短链接

文章名字虽然叫HTTP:长短链接,但HTTP本身是无状态,无连接的,长短连接属于通信细节,由传输层TCP协议负责建立。

HTTP分为长连接和短连接,其实本质上是TCP连接。TCP连接是一个双向的通道,它可以保持一段时间不关闭,因此TCP连接才有真正的长连接和短连接的说法。

  • 在互联网发展早期,一个网页中只包含文本,甚至没有图片,在传输数据时使用短链接便足够,但如今在一个网页中包含多种“元素“,如:文本,图片,视频,音频,各种链接等等;使用短链接效率大大不足支持数据的传输。
  • 现如今我们平时用的基本上都是长连接。

短链接

  • 长短连接的长短指的是时间的长短。

短连接只保持在数据传输过程(请求发起,连接建立,数据返回,连接关闭)。它适用于一些实时数据请求。短连接的流程就是:建立连接->发送数据->断开连接。一次发送之后立即断开连接。

短连接的优点是,存在的连接都是有用的连接,管理起来比较简单。

  • 但是如果网页有很多资源,如果建立一次连接只传输一个资源,建立连接的时间便大大增加,影响传输效率。这是便需要长链接来解决该问题。

长链接

  • 长链接主要解决传输中的效率问题

长连接建立后,在请求关闭连接前客户端与服务端一直保持连接,实质是保持这个通信管道,之后便可以对其进行复用。

长连接并不是永久连接的。如果一段时间内(header内可设置超时时间),这个连接没有HTTP请求发出的话,那么这个长连接就会被断掉。即长时间没有响应,超时会自动断开。

它适用于涉及消息推送,请求频繁的场景(比如一个网页有很多资源)。连接建立后,在该连接下的所有请求都可以重用这个长连接管道,避免了频繁了连接请求,提升了效率。

长连接的优点是,不用重复建立连接关闭连接,但随着客户端连接越来越多,服务端的压力也会越大。

长链接如何建立

keep-alive

在这里插入图片描述

在在HTTP进行request(请求)时,会像服务器发送请求报文,在报文的Header部分,Connection代表支持的链接属性,keep-alive代表支持长链接

长链接的可靠性

数据乱序问题
  • 属于通信细节,由TCP协议负责解决。

在HTTP进行request(请求)时,因为请求是并行发送,因此可能造成数据乱序问题,但是在服务器进行response(响应)时,会将乱序的request进行校正,会以正确的顺序进行response。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值