• 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次握手有是怎么回事呢?

    有空补,下班了

  • 相关阅读:
    springMVC学习笔记五(拦截器详解)
    springMVC学习笔记六(注解方式实现控制器)
    springMVC学习笔记四(数据类型转换和数据验证)
    springMVC学习笔记二(dispatcherServlet)
    springMVC学习笔记三(controller控制器)
    springMVC学习笔记一(hello world)
    mybatis学习笔记四(与spring3集成)
    扩展欧几里得————《数论》
    2017 多校赛 第二场
    POJ 2566 尺取法(进阶题)
  • 原文地址:https://www.cnblogs.com/zhu520/p/11782569.html
Copyright © 2020-2023  润新知