面试冲刺:23---请描述一下TCP的长连接和短连接、HTTP是什么连接的?

一、TCP的长连接和短连接

TCP长连接

  • TCP 长连接指建立连接后保持连接而不断开
  • keep alive机制:
  • TCP长连接一般步骤为:连接→数据传输→保持连接(心跳)→数据传输→保持连接(心 跳)→......→关闭连接
  • 优点:
    • 传输数据快
    • 服务器能够主动第一时间传输数据到客户端
  • 缺点:
    • ​​​​​​​因为客户端与服务器一直保持这种连接,那么在高并发分布式集群系统中客户端数量会越来越多,占 用很多的系统资源
    • TCP本身是一种有状态的数据,在高并发分布式系统会导致后台设计比较难做 

TCP短连接

  • TCP短连接指连接建立并传输数据完成后,就断开连接
  • TCP短连接一般步骤为:连接→数据传输→关闭连接;

二、HTTP是什么连接的?

HTTP是长连接

  • 在HTTP/1.0中,默认使用的是短连接
  • 但从 HTTP/1.1 起,默认使用长连接,用以保持连接特性。使用长连接的 HTTP 协议,会在响应头有加入这行代码:
Connection:keep-alive
  • 注意:此处的 keep-alive 和上述 TCP 长连接原理介绍中的 keep alive 不是一个意 思:此处表示告知服务器本 http 请求是长连接模式,而 TCP 长连接中的 keep alive 表示对客户端的保活检测

HTTP长连接并不是一直保持的

  • http 的长连接也不会是永久保持连接,它有一个保持时间如 20s(从上一次数据传输完成开始计时),可以在不同的服务器软件(如 Apache)中设定这个时间,若超过该时间限制仍然无数据通信传输,服务器就主动关闭该连接
  • 注:实现长连接要客户端和服务端都支持长连接

HTTP连接本质

  • http 的长连接/短连接实质上就是 TCP 的长/短连接

三、附加

猜你喜欢

转载自blog.csdn.net/qq_41453285/article/details/107765806