长链接、短链接

1.什么是长链接、短链接数据库

HTTP/1.0 中默认使用短链接。也就是说,客户端和服务器每进行一次 HTTP 操做,就创建一次链接,任务结束就中 断链接。当客户端浏览器访问的某个 HTML 或其余类型的 Web 页中包含有其余的 Web 资源(如 JavaScript 文件、图像 文件、 CSS 文件等),每遇到这样一个 Web 资源,浏览器就会从新创建一个 HTTP 会话。
而从 HTTP/1.1 起,默认使用长链接,用以保持链接特性。使用长链接的 HTTP 协议,会在响应头加入这行代码:
     Connection:keep-alive
在使用长链接的状况下,当一个网页打开完成后,客户端和服务器之间用于传输 HTTP 数据的 TCP 链接不会关闭,客 户端再次访问这个服务器时,会继续使用这一条已经创建的链接。 Keep-Alive 不会永久保持链接,它有一个保持时 间,能够在不一样的服务器软件(如 Apache )中设定这个时间。实现长链接须要客户端和服务端都支持长链接。 HTTP 协议的长链接和短链接,实质上是 TCP 协议的长链接和短链接。
 
2.长链接、短链接的优缺点
  

         由上能够看出,长链接能够省去较多的TCP创建和关闭的操做,减小浪费,节约时间。对于频繁请求资源的客户来讲,较适用长链接。不过这里存在一个问题存活功能的探测周期太长,还有就是它只是探测TCP链接的存活,属于比较斯文的作法,遇到恶意的链接时,保活功能就不够使了。在长链接的应用场景下,client端通常不会主动关闭它们之间的链接,Client与server之间的链接若是一直不关闭的话,会存在一个问题,随着客户端链接愈来愈多,server迟早有扛不住的时候,这时候server端须要采起一些策略,如关闭一些长时间没有读写事件发生的链接,这样可 以免一些恶意链接致使server端服务受损;若是条件再容许就能够以客户端机器为颗粒度,限制每一个客户端的最大长链接数,这样能够彻底避免某个蛋疼的客户端连累后端服务。后端

        短链接对于服务器来讲管理较为简单,存在的链接都是有用的链接,不须要额外的控制手段。但若是客户请求频繁,将在TCP的创建和关闭操做上浪费时间和带宽浏览器

       长链接和短链接的产生在于client和server采起的关闭策略,具体的应用场景采用具体的策略,没有十全十美的选择,只有合适的选择。服务器

 

3.何时用长链接、短链接?并发

       长链接多用于操做频繁,点对点的通信,并且链接数不能太多情的况。每一个TCP链接都须要三次握手,这须要时间,若是每一个操做都是长链接,再操做的话处理速度会下降不少,因此每一个操做完后都不断开,次处理时直接发送数据包就OK了,不用创建TCP链接。例如:数据库的链接用长链接,若是用短链接频繁的通讯会形成socket错误,并且频繁的socket建立也是对资源的浪费。socket

       像WEB网站的http服务通常都用短链接,由于长链接对于服务端来讲会耗费必定的资源,而像WEB网站这么频繁的成千上万甚至上亿客户端的链接用短链接会更省一些资源。若是用长链接,并且同时有上万用户,若是每一个用户都占用一个链接的话,那可想而知。因此并发量大,但每一个用户无需频繁操做状况下用短链接最好。网站

相关文章
相关标签/搜索