短连接

连接->传输数据->关闭连接
传统 HTTP 是无状态的,浏览器和服务器每进行一次 HTTP 操作,就建立一次连接,但任 务结束就中断连接。 也可以这样说:短连接是指 SOCKET 连接后发送后接收完数据后马上断开连接。

长连接

连接->传输数据->保持连接 -> 传输数据-> … ->关闭连接。
长连接指建立 SOCKET 连接后不管是否使用都保持连接。

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

长连接多用于操作频繁,点对点的通讯,而且连接数不能太多情况。每个 TCP连接都需要三步握手,这需要时间,如果每个操作都是先连接,再操作的话那么处理速度会降低很多,所以每个操作完后都不断开,下次处理时直接发送数据包就OK了,不用建立 TCP 连接。例如:数据库的连接池用长连接, 如果用短连接频繁的通信会造成 socket 错误,而且频繁的 socket 创建也是对资源的浪费。
而像WEB网站的http服务一般都用短链接,因为长连接对于服务端来说会耗费一定的资源(主要是内存,一般一台主机维护上百万的长连接是没问题的),而像 WEB 网站这么频繁的成千上万甚至上亿客户端的连接用短连接会更省一些资源。 总之,长连接和短连接的选择要视情况而定。