笔试题:HTTP协议 长连接 和 短连接 的区别

HTTP协议的长连接和短连接,实质上是TCP协议的长连接和短连接

两者区别

长短连接的请求如图所示

                

长连接

长连接,指在一个连接上可以连续发送多个数据包,在连接保持期间,如果没有数据包发送,需要双方发链路检测包。实现长连接要 客户端 和 服务端 都支持长连接

HTTP/1.1起,默认使用长连接,用以保持连接特性。使用长连接的HTTP协议,会在响应头中加入:Connection: keep-alive  以表示长连接请求

  • 但 keep-alive 并不会永久保持连接,它有一个保持时间,可以在不同的服务器软件(如Apache)中设定这个时间

短连接

短连接,指的是在数据传送过程中,只在需要发送数据时才去建立一个连接,数据发送完成后则断开此连接,即每次连接只完成一项数据请求的发送任务

在 HTTP/1.0 中,默认使用的是短连接

应用场景

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

  • 原因:因为每个链接连接前都需要进行TCP三次握手,这需要时间,如果每个操作都是先连接,再操作的话那么处理速度会降低很多,所以每个操作完后都不断开,再次处理时直接发送数据包就OK了,不用建立新的TCP连接
  • 例子
    • 数据库的连接, 如果用短连接频繁的通信会造成socket错误,而且频繁的socket创建也是对资源的浪费
    • 一般的网络游戏应用

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

  • 原因:像WEB网站的HTTP服务一般都用短链接,因为长连接对于服务端来说会耗费一定的资源,而像WEB网站这么频繁的成千上万客户端的连接用短连接会更省一些资源,如果用长连接,而且同时有成千上万的用户,如果每个用户都占用一个连接的话,服务器会发生请求饱满无法处理其他请求的现象

优缺点

长连接

  • 优点:减少了TCP连接的建立和关闭的次数
  • 缺点:存活功能的探测周期长,即需要双方发链路检测包,探测是否还保持连接状态

短连接

  • 优点:服务器对连接管理方便简单,存在的连接都是有用的连接,不需要额外的控制手段
  • 缺点:如果客户端请求频繁,将在TCP的建立和关闭操作上消耗时间和带宽

 

posted @ 2022-05-14 17:36  伊文小哥  阅读(269)  评论(0编辑  收藏  举报