lotus

贵有恒何必三更眠五更起 最无益只怕一日曝十日寒

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

什么是长连接,什么是短连接?长连接和短连接的区别是什么?

说到长连接,短连接,不得不提到三次握手。

举个例子,如下场景:

 

http://blog.csdn.net/sinat_21455985/article/details/53508115


三次握手(连接)和four次挥手(断开)的总结:
1tcp协议是pc机器与pc机器之间的进行的工作,即机器中网卡,这一步跟tomcat等j2ee的web工程一点关系都没有。其实很好理解,因为tcp协议的配置是在pc的网络管理里进行设置和选择的。


2tcp协议的三次握手,一定在http url请求真正开始之前,即http://127.0.0.1:8080/testProject这个地址被tomcat服务器响应之前,先进行tcp协议的三次握手。即三次握手时,http url请求还没发起,只是获取到了服务器pc机器的ip地址。

这里就有问题,http url是:①先到的tomcat,然后由tomcat摘出ip地址和port端口号去跟pc机器的网卡通信,建立tcp连接(短连接或者是长连接),还是②http url直接被pc机器的网卡摘出ip地址和port端口号建立tcp连接?
答案:
第二种情况,跟tomcat根本没什么关系。

 




 

 

2在知道了三次握手之后,再回过头来看长连接和短连接

 

推荐文章:

http://www.jianshu.com/p/caeec6bd1d3f

长连接和短连接就很清楚了。

所以长连接,短连接,用哪一种,主要是针对服务来言的。

如果客户端连接数较多,长连接会一直占用着这个tcp连接不放,对服务器压力比较大,一共使用短连接,如一般的网站。

如果是那种两台机器的通讯,长连接就比较合适。

 

但是我看现在的浏览器发起的http请求都是长连接啊,理论上该用短连接才对:

解释如下:

http://www.mamicode.com/info-detail-1279085.html

也就是说,浏览器端发起的http url请求中,header中是http 1.1并且connection属性是keep-alive,则发起的就是一个tcp长连接(而不是http的长连接,跟http没有任何关系),则这就是建立一个长连接,服务器端pc机器不需要进行任何操作,更跟tomcat没有什么关系。

 

 

 

 

3http 请求和socket请求的区别。以及http和socket之长连接和短连接的区别。

posted on 2019-03-23 18:00  白露~  阅读(2987)  评论(0编辑  收藏  举报