HTTP持久连接与TCP套接字连接

Kev*_*oyd 8 tcp http persistent

来自维基百科上的这篇文章:

HTTP 1.0中未正式支持Keepalive消息.在HTTP 1.1中,所有连接都被认为是持久的,除非另有声明.

  • 这是否意味着使用这种机制我实际上可以模拟TCP套接字连接?
  • 使用这个可以让服务器"推送"数据到客户端吗?
  • 是否所有HTTP连接,甚至是我用来连接Stack Overflow"HTTP持久性"的连接?
  • 服务器推送的COMET技术是否使用这种HTTP持久连接机制将数据推送到客户端?

Ale*_*lli 9

  • 这是否意味着使用这种机制我实际上可以模拟TCP套接字连接?

不是真的,插座有MANY更多的功能和灵活性.

  • 使用这个可以让服务器"推送"数据到客户端吗?

不是直接的,它仍然是一个请求/响应协议; 持久连接只是意味着客户端可以使用相同的底层套接字来发送多个请求并接收相应的响应.

  • 是否所有HTTP连接,甚至是我用来连接Stack Overflow"HTTP持久性"的连接?

除非您的浏览器(或特殊服务器)另有说明,否则.

  • 服务器推送的COMET技术是否使用这种HTTP持久连接机制将数据推送到客户端?

有点(至少流媒体),但顶部有很多生奶油.还有其他Comet实现方法,例如隐藏的iframe和AJAX长轮询,可能不需要持久连接(无论如何都会给出一些防火墙和c):-).

  • TCP套接字对谁何时或如何说话没有任何限制 - 任何一方都可以随时发送字节而无需等待另一方("全双工"),该流本质上不会被分成定义长度的消息,&c.你需要一个更高层的协议来放弃一些灵活性并使秩序变得混乱:HTTP只是一个这样的协议,一个非对称的半双工请求/响应协议,具有明确定义的长度的消息(内容长度头或分块).客户端可以一个接一个地排队请求,服务器必须响应每个请求. (2认同)