Java教程

网络编程:HTTP:长短链接

本文主要是介绍网络编程:HTTP:长短链接,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

长短链接

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

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

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

短链接

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

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

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

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

长链接

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

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

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

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

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

长链接如何建立

keep-alive

在这里插入图片描述

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

长链接的可靠性

数据乱序问题

  • 属于通信细节,由TCP协议负责解决。

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

这篇关于网络编程:HTTP:长短链接的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!