http和https 握手过程

这几天测试打印机一直出现打印延迟或者不打印的BUG。找了几天也没有发现为啥没有打印或者打印延迟。
然后今天公司的研发大佬过来找问题,并开个会,瞬间所有的问题都找出了并且知道怎么解决了。
大佬果然还是大佬。佩服实在是佩服!!!

 

现在这个社会,我们都离不开网络,那么网络的工作流程是怎么样的呢?从http发起请求到完成请求,网络到底给我们做了什么事情?
今天我们主要来分析下http请求的过程:
   在Http工作之前,Web浏览器通过网络和Web服务器建立链连接,
   该连接是通过Tcp来完成的,该协议和Ip共同组成了Internet,即著名的Tcp/Ip协议族,
   因此Internet也被称为Tcp/Ip网络,Http是比Tcp更高的应用层协议,一般Tcp接口的端口好是80.

Web浏览器给Web服务器发送请求命令,这个命令中包含

Web服务器发送响应数据给Web浏览器,这个包含

然后Web服务器关闭连接。

以上就是基本的http请求。 
在这个过程中,http建立连接,Tcp经过了3次握手,下面我们来讲讲具体的3次握手的过程,首先我们来看一张图:

1:客户端发送了一个带有SYN的Tcp报文到服务器,这个三次握手中的开始。表示客户端想要和服务端建立连接。 
2:服务端接收到客户端的请求,返回客户端报文,这个报文带有SYN和ACK标志,询问客户端是否准备好。 
3:客户端再次响应服务端一个ACK,表示我已经准备好。

那么为什么要三次握手呢,有人说两次握手就好了。的确,为什么呢,这个可以从计算机网络中得到答案,举一个例子:已失效的连接请求报文段, 
client发送了第一个连接的请求报文,但是由于网络不好,这个请求没有立即到达服务端,而是在某个网络节点中滞留了,知道某个时间才到达server,本来这已经是一个失效的报文,但是server端接收到这个请求报文后,还是会想client发出确认的报文,表示同意连接。假如不采用三次握手,那么只要server发出确认,新的建立就连接了,但其实这个请求是失效的请求,client是不会理睬server的确认信息,也不会向服务端发送确认的请求,但是server认为新的连接已经建立起来了,并一直等待client发来数据,这样,server的很多资源就没白白浪费掉了,采用三次握手就是为了防止这种情况的发生,server会因为收不到确认的报文,就知道client并没有建立连接。这就是三次握手的作用。

当终止协议的时候,tcp进行了4次握手,那这4次握手有是怎么回事呢?

有空补,下班了

猜你喜欢

转载自www.cnblogs.com/zhu520/p/11782569.html