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

时间:2009-09-26 02:23:17

标签: http tcp persistent

来自维基百科上的this文章:

  

Keepalive消息未正式发布   在HTTP 1.0中受支持。在HTTP 1.1中全部   连接被认为是持久的,   除非另有说明。

  • 这是否意味着使用此 机制我实际上可以模拟一个 TCP套接字连接?
  • 使用它可以制作服务器 “推送”数据给客户?
  • 是所有HTTP连接,甚至是 一个我用来连接到堆栈 溢出“HTTP持久性”?
  • COMET技术吗? 服务器推送使用这种机制 HTTP持久连接推送 数据给客户?

2 个答案:

答案 0 :(得分:8)

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

实际上,套接字具有 MANY 更多功能和灵活性。

  
      
  • 使用此功能,我可以将服务器“推送”到客户端吗?
  •   

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

  
      
  • 是所有HTTP连接,甚至是我用来连接Stack的连接   溢出“HTTP持久性”?
  •   

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

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

有点(至少用于流式传输),但顶部有很多生奶油。还有其他Comet实现方法,例如隐藏的iframe和AJAX长轮询,可能不需要持久连接(无论如何都会给某些防火墙& c拟合; - )。

答案 1 :(得分:1)

实际上,HTTP服务器可以将数据“推送”到连接的http客户端,而无需客户端请求它。请参阅http://en.wikipedia.org/wiki/Push_technology处的“HTTP服务器推送”。但它似乎确实普遍实现。