[网络]------长连接和短连接

本文重点介绍:

长连接和短连接的定义,优缺点以及使用场景

前提须知:

1.HTTP/1.0默认使用短连接,HTTP/1.1开始,默认使用长连接
2.HTTP协议的长连接和短连接,实质是就是TCP协议的长连接和短连接
3.tcp协议建立连接需要三次握手,这个过程会耗费网络资源和时间
4.tcp协议断开连接需要四次握手,这个过程会耗费网络资源和时间
5.TCP UDP HTTP Socket 区别

一.长连接和短连接

长连接:是指在一个TCP连接上可以发送多个数据包,但是如果没有数据包发送时,也要双方发检测包以维持这个链连接
短连接:当双方需要有数据交互的时候,就建立一个TCP连接,本次交互完成后,就断开这个连接

注:双方指客户端和服务端

二.各自优缺点及使用场景

长连接可以省去较多建立连接和关闭连接的操作,所以比较节省资源和时间,但是长连接如果一直存在的话,第一需要很多探测包的发送来维持这个连接,第二对服务器将是很大的负荷

相对而言,短连接则不需要服务器承担太大负荷,只要存在的连接就都是有用连接,但如果客户端请求频繁,就会在TCP的建立连接和关闭连接上浪费较大的资源和时间

三.使用场景

综合长连接短连接的优缺点,我们不难发现,这两种连接没有绝对的好坏之分,只能说在不同的场景使用不同的连接才是上策

一般而言,像京东,淘宝这些大型的网站,随时随刻有成千上万的用户对服务端发送请求,一般使用短连接,因为如果用长连接的话,用户越来越多,服务器一般扛不住这么多长连接
其实现在的大部分网站,使用的都是短连接,应该还是服务器压力的问题吧

而即时通讯(比如QQ)一般使用的是长连接(UDP长连接),但并不是永久连接,一般也会有一个保持的时间,比如30分钟,24小时等,因为即时通讯是频繁的发送请求,使用长连接只需要建立一次连接,比较划算,同时再根据业务设置保持时间,超过这个时间就断开连接,也一定程度上保证了服务器的压力不会过大

同理,网络游戏一般也使用长连接,同理即时通讯

猜你喜欢

转载自blog.csdn.net/java_zhangshuai/article/details/80710605