1.浏览器像本地域名服务器请求解析域名拿到服务器IP地址
2.本地域名服务器没有向根域名服务器发起,根域名服务器返回顶级域名服务器IP,本地再访问顶级域名服务器获取二级域名服务器的地址,返回IP,本地域名服务器再去查…
3.拿到IP之后,进行3次握手建立TCP连接
4.客户端发送请求报文到服务端
5.服务端响应
6.4次握手释放TCP连接
HTTPS是安全版的HTTP,使用了安全传输协议SSL(安全套接字),SSL工作方式是
1.客户端发送自己的SSL版本及支持的加密算法
2.服务器发送选定的加密算法,并发送证书(公钥)
3.客户端对证书进行验证,过期时间,域名是否相同,颁发机构等等
4.验证通过后生成一个随机数作为密钥,用证书公钥加密后发送到服务器
5.服务器用私钥进行解密,得到了密钥
6.双方会话用这个密钥和约定的加密算法进行加密解密传输数据,保证其隐秘性
TCP连接
1.客户端打开自己的TCP进程,服务器被动打开自己的TCP连接,监听80端口
2.客户端发送请求连接报文(同步发送)
3.服务器收到后,同意返回同意建立连接(同步收到)
4.客户端收到之后向服务器发送收到建立连接,连接就建立了(连接)
第三次握手是为了防止第一次客户端发送了一个请求,超时未到达服务器,重发请求并建立连接,传送数据,释放连接。此时服务器收到了第一个超时的请求并发送确认连接,如果两次握手就连接上,那么服务端这个TCP连接就一直在等待客户端发起请求传输数据,造成资源浪费
TCP释放连接
1.客户端向服务器发起连接释放请求(等待释放1)
2.服务器收到释放请求后返回收到(等待释放)
3.客户端收到请求释放的响应(等待释放2)
4.服务器发送连接释放请求(最终确认)
5.客户端收到后发送确认收到,进入规定的连接等待时间
网友评论