长连接与短连接

TCP的长连接与短连接以及HTTP的长连接与短连接

TCP的长连接与短连接

        当采用TCP协议进行网络通信时,整体过程包括三个部分,1clientserver之间连接的建立;2clientserver之间数据交互;3clientserver之间连接的关闭。连接建立就是经典的三次握手而连接的关闭需要四次握手,连接的建立与关闭都是需要消耗资源和时间的。

        TCP短连接是说:clientserver发起连接请求,server接收请求,双方建立连接,clientserver发送消息,server回应内容给client,它俩之间完成一次交互,这时候双方任何一个都可以发起close操作,一般都是client先发起close操作,除非有特殊需求特殊对待。这就是常见的短连接的情景,简单来说就是短连接一般只会在client/server间进行一次真正数据交互操作。

        而TCP长连接是说:clientserver发起连接请求,server接收请求,双方建立连接,建立连接完成之后他们之间的连接并不会被任何一方主动关闭,可以通过这个连接进行后续更多交互,简单来说就是连接一直保持活力。

        小结:短连接应用的场景一般是clientserver每次进行数据交互都重新建立连接,这种方式对于server端来说不会一直占用连接资源,但是对client端来说就会重复进行连接建立,好处是管理简单,存在的连接都是有用的连接,不需要额外的控制,短连接常用于一点对多点 通讯,比如多个Client连接一个Server;长连接由于要一直保持连接状态需要占用大量资源,同时需要额外的控制策略进行连接的管理,比如强制关闭一些长时间没有数据交互的连接,长连接常用于P2P通信

HTTP的长连接与短连接

        HTTP的长连接与短连接本质上还是TCP的长连接与短连接,HTTP是一个无状态的面向连接的协议,无状态指的是浏览器和服务器每进行一次HTTP操作就建立一次连接,这个连接本质上也就是一个TCP连接,但任务结束后就中断连接,这里的任务可以解释为获取一个网页或者一张图片等等资源,这样的话,我们可以知道打开一个服务器上的网页和你之前打开这个服务器上的梁歪一个网页之间没有任何联系,这两次操作是通过不同的连接来进项的。

        在HTTP/1.0中,默认使用的是短连接。也就是说,浏览器和服务器每进行一次HTTP操作,就建立一次连接,但任务结束就中断连接。如果客户端浏览器访问的某个HTML或其他类型的 Web页中包含有其他的Web资源,如JavaScript文件、图像文件、CSS文件等;当浏览器每遇到这样一个Web资源,就会建立一个HTTP会话。但从 HTTP/1.1起,默认使用长连接,用以保持连接特性。使用长连接的HTTP协议,会在响应头有加入这行代码:Connection:keep-alive

        在使用长连接的情况下,当一个网页打开完成后,客户端和服务器之间用于传输HTTP数据的 TCP连接不会关闭,如果客户端再次访问这个服务器上的网页,会继续使用这一条已经建立的连接。Keep-Alive不会永久保持连接,它有一个保持时间,可以在不同的服务器软件(如Apache)中设定这个时间。实现长连接要客户端和服务端都支持长连接。

 

参考文献:

http://www.cnblogs.com/sunada2005/p/3304593.html

http://blog.csdn.net/shine0181/article/details/7799754

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值