美文网首页
长连接与短连接

长连接与短连接

作者: 味道_3a01 | 来源:发表于2018-08-29 16:24 被阅读9次

短连接

连接->传输数据->关闭连接

HTTP是无状态的,浏览器和服务器每进行一次HTTP操作,就建立一次连接,但任务结束就中断连接。

也可以这样说:短连接是指SOCKET连接后发送后接收完数据后马上断开连接。

长连接

连接->传输数据->保持连接 -> 传输数据-> ... ->关闭连接。

长连接指建立SOCKET连接后不管是否使用都保持连接,但安全性较差。

http的长连接

HTTP也可以建立长连接的,使用Connection:keep-alive,HTTP 1.1默认进行持久连接。

HTTP1.1和HTTP1.0相比较而言,最大的区别就是增加了持久连接支持(貌似最新的 http1.0 可以显示的指定 keep-alive),但还是无状态的,或者说是不可以信任的。

什么时候用长连接,短连接?

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

每个TCP连接都需要三步握手,这需要时间,如果每个操作都是先连接,再操作的话那么处理速度会降低很多,所以每个操作完后都不断开,每次处理时直接发送数据包就OK了,不用建立TCP连接。例如:数据库的连接用长连接, 如果用短连接频繁的通信会造成socket错误,而且频繁的socket 创建也是对资源的浪费。

而像WEB网站的http服务一般都用短链接,因为长连接对于服务端来说会耗费一定的资源,而像WEB网站这么频繁的成千上万甚至上亿客户端的连接用短连接会更省一些资源,如果用长连接,而且同时有成千上万的用户,如果每个用户都占用一个连接的话,那可想而知吧。

所以并发量大,但每个用户无需频繁操作情况下需用短连接好。

补充与扩展

通俗点讲,短连接就是一次TCP请求得到结果后,连接马上结束.而长连接并不马上断开,而一直保持着,直到长连接TIMEOUT(具体程序都有相关参数说明).长连接可以避免不断的进行TCP三次握手和四次挥手.

长连接(keepalive)是需要靠双方不断的发送探测包来维持的,keepalive期间服务端和客户端的TCP连接状态是ESTABLISHED。


关注公众号,获取海量免费java进阶视频

相关文章

  • TCP keepalive 和 http keep-alive

    HTTP的长连接和短连接本质上是TCP长连接和短连接。 短连接短连接,顾名思义,与长连接的区别就是,客户端收到服务...

  • 面试遇到的题目

    1、Socket的长连接和短连接 长连接和短连接的概念: 长连接与短连接的概念:前者是整个通讯过程,客户端和服务端...

  • HTTP 长连接和短连接

    1. HTTP 协议与 TCP/IP 协议的关系 HTTP 长连接和短连接 === TCP 长连接和短连接。HTT...

  • 长连接与短连接

    短连接 连接->传输数据->关闭连接 HTTP是无状态的,浏览器和服务器每进行一次HTTP操作,就建立一次连接,但...

  • 长连接与短连接

    短连接: 简单的说, 短连接是socket连接后,传输完一次数据后就关闭连接。客户端收到服务端的响应后,立刻发送F...

  • 长连接与短连接

    概念: 长连接是指在一个TCP连接上可以连续发送多个数据包,在TCP连接保持期间,如果没有数据包发送,需要双方发检...

  • 长连接与短连接

    长连接和短链接的区别 客户端和服务端响应的次数长连接:可以多次短连接:一次 传输数据的方式长连接:连接--数据传输...

  • 分析 HTTP,TCP 的长连接和短连接以及 sock

    HTTP 协议与 TCP/IP 协议的关系 HTTP 的长连接和短连接本质上是 TCP 长连接和短连接。HTTP ...

  • http长短连接和长短轮询、webSocket

    本文主要介绍长连接、短连接、长轮询、短轮询 和 webSocket。长连接、短连接、长轮询、短轮询是基于http的...

  • TCP通信的整个过程

    不断是长连接,断开再连是短连接 tcp长连接和短连接 TCP在真正的读写操作之前,server与client之间必...

网友评论

      本文标题:长连接与短连接

      本文链接:https://www.haomeiwen.com/subject/borkwftx.html