美文网首页
弄懂 HTTPS 的原理!

弄懂 HTTPS 的原理!

作者: li_礼光 | 来源:发表于2020-12-14 11:33 被阅读0次

    Mark :
    20 张图彻底弄懂 HTTPS 的原理!
    几幅图,拿下 HTTPS
    可怕,原来 HTTPS 也没用

    image.png image.png 发送流程

    应用程序 的数据包


    http1.0 短连接 (100张图,100次连接)
    http1.1 长连接(100张图,1次TPC握手连接)
    http2.0 长连接+iO多路复用模型(五大模型之一)

    多路复用,代替原来的序列和阻塞机制。所有就是请求的都是通过一个 TCP连接并发完成。

    HTTP 1.x 中,如果想并发多个请求,必须使用多个 TCP 链接,且浏览器为了控制资源,还会对单个域名有 6-8个的TCP链接请求限制,如下图,红色圈出来的请求就因域名链接数已超过限制,而被挂起等待了一段时间。

    一文读懂 HTTP/2 特性


    一次的 http 请求 :

    • 域名解析
    • 发起 TCP3 次握手
    • 建立 TCP 连接后发起 http 请求
    • 服务器响应请求,返回结果
    • 浏览器得到 html 标签代码
    • 浏览器解析 html 代码中的资源,例如 js,css,img 等
    • 浏览器对页面进行渲染并呈现给用户

    Mark:
    携程App网络服务通道治理和性能优化
    iOS端移动网络调优的8条建议
    iOS NSURLCache 机制原理探究



    关于HTTP缓存机制

    image.png image.png
    - (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event{
        
        NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:@"https://goss4.cfp.cn/creative/vcg/800/version23/VCG41588495447.jpg"]];
    
        [[[NSURLSession sharedSession] dataTaskWithRequest:request completionHandler:^(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error) {
            if (error) {
                NSLog(@"error : %@",error);
            } else {
                NSLog(@"response : %@",response);
            }
        }] resume];
    }
    
    2021-03-12 15:04:19.994677+0800 URLCacheDemo[13738:3055634] response : <NSHTTPURLResponse: 0x600003b48380> { URL: https://goss4.cfp.cn/creative/vcg/800/version23/VCG41588495447.jpg } { Status Code: 200, Headers {
        "Accept-Ranges" =     (
            bytes
        );
        "Content-Length" =     (
            127674
        );
        "Content-Type" =     (
            "image/jpeg"
        );
        Date =     (
            "Fri, 12 Mar 2021 07:04:13 GMT"
        );
        Etag =     (
            "\"A0BBFF9AE9CF111DE18D76EDE0DD29A4\""
        );
        "Last-Modified" =     (
            "Wed, 12 Apr 2017 08:47:36 GMT"
        );
        ......
        "x-cache" =     (
            "MISS TCP_MISS dirn:-2:-2"
        );
        ......
        "x-swift-cachetime" =     (
            3600
        );
        "x-swift-savetime" =     (
            "Fri, 12 Mar 2021 07:04:13 GMT"
        );
        ......
    } }
    
    

    相关文章

      网友评论

          本文标题:弄懂 HTTPS 的原理!

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