网络七层协议不解释了
我们的http,ssh,stmp 等协议都属于应用层
无论你要用哪种协议都需要在传输层 先建立socket 连接
而socket 连接是根据 ip+端口 来匹配的
也就是说一个就算是2台机器,不同的应用之间建立的socket 也是不一样的
在http 1.0的时代,都是短链接(每次请求完了以后就关闭)
http1.1 以后默认支持长连接
Connection:keep-alive
不用的话可以关闭
Connection:close
长连接的好处是不用每次请求都经过3次握手
请求完成后不急着关闭管道,方便其他请求
在服务器中有参数设置长连接时间
握手过程:
A 要和B 建立连接
1.A:我要和你建立连接 ,(发送消息1给B)
2.B收到消息1后, B:知道了,我也和你建立连接 ,( 发送消息2给A)
3.A收到消息2后确认B已经接到了它之前发出去的请求,表示A到B的管道是没有问题的。这个时候再回B 一个消息3 (好让B也知道B发出去的消息A也能收到)
分手过程:
A 要和B 分手
1.A:我要和你断开连接 (发送消息1给B)
2.收到消息1后,B:知道了
3.B:我也要和你断开 (发送消息2给A)
4.收到消息2后,A:知道了
然后找一个空闲时间都断开连接,释放资源