Mark :
20 张图彻底弄懂 HTTPS 的原理!
几幅图,拿下 HTTPS
可怕,原来 HTTPS 也没用
应用程序 的数据包
http1.0 短连接 (100张图,100次连接)
http1.1 长连接(100张图,1次TPC握手连接)
http2.0 长连接+iO多路复用模型(五大模型之一)
多路复用,代替原来的序列和阻塞机制。所有就是请求的都是通过一个 TCP连接并发完成。
HTTP 1.x 中,如果想并发多个请求,必须使用多个 TCP 链接,且浏览器为了控制资源,还会对单个域名有 6-8个的TCP链接请求限制,如下图,红色圈出来的请求就因域名链接数已超过限制,而被挂起等待了一段时间。
一次的 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"
);
......
} }
网友评论