什么是长连接,什么是短连接?长连接和短连接的区别是什么?
说到长连接,短连接,不得不提到三次握手。
举个例子,如下场景:
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之长连接和短连接的区别。