一直对HTTP的东西就了解得不多,算是一点一点积累吧。分析比较一下长连接和短连接的区别。
HTTP的长连接和短连接实质上说的是TCP的长连接和短连接。
长连接
定义
是指客户端和服务器建立连接后,短时间内保持连接,以便下一次的数据传输。长连接的操作步骤如下:
长连接:建立连接 -> 数据传输 .. (保持连接) ...数据传输 -> 关闭连接
特点
- HTTP/1.1起,默认使用长连接来保持连接特性。
- 使用长连接的协议会在响应头部里面,加入如下字段:
-
如图所示,Keep-Alive并不会永久保持连接,它有一个保持时间,可以在不同的服务器软件中设定这个时间。
-
实现长连接需要客户端和服务器都支持长连接。
-
长连接可以省去较多的TCP建立和关闭的操作,减少浪费,节约时间。对于频繁请求资源的客户来说,较适用长连接。
-
适用场景:多用于操作频繁,点对点通讯,而且连接数不太多的情况。例如数据库的连接用长连接,如果用短连接频繁的通信会造成socket错误,而且频繁的socket创建也是对资源的浪费。
短连接
含义
是指客户端和服务器每进行一次数据传输,就建立一次连接。数据传输完成之后,就关闭连接,并不保持连接。短连接的操作步骤如下:
短连接: 建立连接 -> 数据传输 -> 关闭连接.. 建立连接 -> 数据传输 -> 关闭连接..
特点
- HTTP/1.0中,默认的是短连接
- 短连接对于服务器来说管理较为简单,存在的连接都是有用的连接,不需要额外的控制手段。但如果客户请求频繁,将在 TCP 的建立和关闭操作上浪费时间和带宽。
- 适用场景:Web网站的http服务一般用短连接,因为长连接对服务器来说会耗费一定的资源,所以,在并发量大,用户无需频繁操作的情况下,用短连接好。
参考
-
本文参考网络资源,主要有HTTP 长连接和短连接和HTTP的长连接和短连接
-
谢谢大佬们的分享。