短连接、长连接区别和场景
http的长连接和短连接实际上是TCP的长连接和短连接。
每个TCP连接都需要三次握手。
# 短连接:
http 1.0默认使用的是短连接。client每次请求Server都会建立一次连接,用完中断连接。
适用于Web【wapWeb/H5等】的http服务,长连接对于服务端来说会耗费一定资源。
WEB 网站的 http 服务一般都用短链接(用户需要请求则新开一个socket),比如一些css、js资源请求都是短连接。
对于电子商务Web的访问量可能是千万级别甚至亿万级别的。如果使用长连接的方式 当一万个用户访问时会占用一万个连接,假设服务器站点(IIS等)的通信吞吐量只有1千个,那么另外9千人就彻底挂啦,所以并发量大且用户不需要频繁的交互式操作时,用短连接为上策。
# 长连接:
三次握手后,一直使用该socket。比如打开一个网页,只要你不关闭这个网页,
从 HTTP/1.1 起,默认使用长连接,通过在响应头加入:
Connection:keep-alive
实现。
但不代表永久保持连接,只是有一个保持时间,可以通过服务器设定,而且实现长连接需要客户端和服务端都支持长连接。
即时通讯、游戏、视频 使用的是长连接。
Durid数据库连接池也是长连接。( 如果用短连接频繁的通信会造成 socket 错误,而且频繁的 socket创建也是对资源的浪费)
# 总结:
长连接可以理解为整个通讯的过程。例如:client和server只用一个Socket,从而保持长期的通讯连接;
短链接可以理解为每次client向Socket发送请求都会新建一个Socket,当处理完一个请求时就直接关闭掉Socket;
区分长/短连接:整个客户端和服务端的通讯过程是利用一个Socket还是多个Socket进行的。
上次更新: 2024-05-23 10:33:15