1.网络协议分层模型:
    网络协议 - 图1
    2.一个例子
    网络协议 - 图2
    解释:假设浏览器和本地文件缓存没有命中,放问DNS服务时,从应用层的DNS协议向下到UDP、IP,每层加报文请求头,之后通过ARP寻址找到目标的MAC地址,网络访问层加上MAC地址并发给路由器。路由器则是从网络层到互联层,因为它需要判断数据是不是本路由器应该处理和转发的,转发的下一个节点是谁。最后走一个网关到网络服务应用商。服务商找到DNS服务器,同样的步骤,把目标ip原路返回,返回时的层链路与进入时相反。然后浏览器会发起一个HTTP协议的请求,此时走TCP、IP,到运营商再走路由寻址,直到找到目的网关,按各层自下往上处理。由于有目的端口,所以会交给NGINX等服务处理报文。
    3.HTTP报文格式
    网络协议 - 图3
    请求的起始行格式为:method 空行 URI 空行 HTTP版本号 换行
    响应的起始行格式为:HTTP版本号 空行 响应码 空行 响应码的解释 换行
    4.HTTPS原理:
    网络协议 - 图4
    https比起http是在应用层增加了一层,用于加解密,http本身没有变,具体实现如下:
    网络协议 - 图5
    3次握手之后,客户端告知服务端自己能接受的加解密类型,服务端选择一种并告知客户端,客户端验证服务端证书,并用这种算法产生被服务端证书公钥加密的随机对称加密秘钥,服务端用私钥解密,双方用这个对称秘钥传输数据。