美文网首页
https和http连接过程

https和http连接过程

作者: 程序员不务正业 | 来源:发表于2018-07-09 21:13 被阅读89次

    http连接

    连接需经过三次握手:

    第一次:建立连接时,客户端发送syn(syn=j)包到服务器,并进入syn_sent状态,等待服务器确认。
    第二次:服务器收到syn包,必须确认客户端的syn(ack=j+1),同时自己也发送一个syn(syn=k)包,即syn+ack包到客户端,此时服务器进入syn_recv状态
    第三次:客户端收到服务器的syn+ack包,向服务端发送确认包ack(ack=k+1),此包发送完成,客户端和服务器进入tcp连接成功状态,完成三次握手。

    为什么要采用三次握手,两次不行吗?:防止发出的请求由于网络拥堵导致互相等待问题
    20160809153504099.png

    之所有有第三次握手的原因,有可能在客户端发送连接请求时,第一次发送,请求在网络的某个地方block了,这时候发送第二次网络请求,第二次网络请求服务器答复了,而第一个网络请求又来了,而这个请求应该是被弃用了的,所以就出现了这个请求异常。为了避免这个异常就建立了3次握手

    断开连接需要四次挥手:

    第一次:tcp客户端发送一个fin(fin=j),用来关闭客户端到服务器的数据传输
    第二次:服务端收到fin,返回一个ack(ack=j+1),确认号为收到的序号+1
    第三次:服务器关闭客户端的连接,发送一个fin(fin=m)给客户端
    第四次:客户端返回ack(ack=m+1)报文确认,并将序列号设置为收到的序列号+1,完成断开

    https连接:

    1、客户端发送请求到服务端,建立连接(http三次握手)
    2、客户端发送请求到服务端,建立连接(SSL/TSL握手)

    1、客户端发起https请求,服务端返回给客户端一个公钥(证书)
    2、客户端产生对称密钥
    3、使用公钥对产生的对称密钥进行加密
    4、发送加密后的对称密钥给服务器
    5、客户端通过对称密钥加密的密文通信(ssl加密建立)

    相关文章

      网友评论

          本文标题:https和http连接过程

          本文链接:https://www.haomeiwen.com/subject/ybztpftx.html