HTTP 长连接和短连接

一直对HTTP的东西就了解得不多,算是一点一点积累吧。分析比较一下长连接和短连接的区别。

HTTP的长连接和短连接实质上说的是TCP的长连接和短连接。

长连接

定义

是指客户端和服务器建立连接后,短时间内保持连接,以便下一次的数据传输。长连接的操作步骤如下:

长连接:建立连接 -> 数据传输 .. (保持连接)  ...数据传输 -> 关闭连接

特点

  • HTTP/1.1起,默认使用长连接来保持连接特性。
  • 使用长连接的协议会在响应头部里面,加入如下字段:

  • 如图所示,Keep-Alive并不会永久保持连接,它有一个保持时间,可以在不同的服务器软件中设定这个时间。

  • 实现长连接需要客户端和服务器都支持长连接。

  • 长连接可以省去较多的TCP建立和关闭的操作,减少浪费,节约时间。对于频繁请求资源的客户来说,较适用长连接。

  • 适用场景:多用于操作频繁,点对点通讯,而且连接数不太多的情况。例如数据库的连接用长连接,如果用短连接频繁的通信会造成socket错误,而且频繁的socket创建也是对资源的浪费。

短连接

含义

是指客户端和服务器每进行一次数据传输,就建立一次连接。数据传输完成之后,就关闭连接,并不保持连接。短连接的操作步骤如下:

短连接: 建立连接 -> 数据传输 -> 关闭连接.. 建立连接 -> 数据传输 -> 关闭连接..

特点

  • HTTP/1.0中,默认的是短连接
  • 短连接对于服务器来说管理较为简单,存在的连接都是有用的连接,不需要额外的控制手段。但如果客户请求频繁,将在 TCP 的建立和关闭操作上浪费时间和带宽。
  • 适用场景:Web网站的http服务一般用短连接,因为长连接对服务器来说会耗费一定的资源,所以,在并发量大,用户无需频繁操作的情况下,用短连接好。

参考

posted @ 2017-05-22 21:39  JeffLai  阅读(216)  评论(0编辑  收藏  举报