美文网首页
网络请求优化

网络请求优化

作者: 雪国落叶 | 来源:发表于2020-05-22 11:04 被阅读0次

网络优化,首先要考虑网络请求有哪些过程,
组拼数据------> 封装请求发起请求--->DNS获取ip-->通过htt发送出去--->网络包在网络中传输 --> 服务端收到请求返回端上。

组拼数据

较少数据量:Protobuf,gzip

网络缓存:提供一种将数据存储到本地的思想,实现减少服务器的请求负荷、加快请求速度、无网也能显示内容。例如:OkHttp的缓存机制(强制缓存 与 对比缓存)。
强制缓存:在缓存数据未失效的情况下,可以直接使用缓存数据,由两个字段Expires和Cache-Control用于标明失效规则。

对比缓存:表示需要和服务端进行相关信息的对比,由服务器决定是使用缓存还是最新内容,如果服务器判定使用缓存,返回响应吗304,判定使用最新内容,则返回响应码200和最新数据(ETag和If-None-Match)。

图片传输:用webp格式等,本地缓存。

封装和发起请求

根据相同的HOST请求,可以设计连接的缓存,实现连接池进行复用。例如:OkHttp中的Dispatcher

dns阶段

IP直连, 多个ip直连。
DNS可能存在被劫持等问题,在之前的文章中也分析了DNS解析的过程,解决方案主要有httpDns等。

网络包在网络中传输

弱网环境引发的丢包问题,设置timeout时间,缩短发送的数据量,尝试一次quick协议。

服务端收到请求返回端上。

预加载的方式,提前返回一些信息。

看到一篇博客提到网络请求 Android部分手机4G网第一次请求很慢(wifi正常)
他在测试过程中发现InetAddress.getAllByName("xxxx.cn");
1、连接到公司wifi,只解析到 ipv4 地址
2、连接到4G网,解析到了ipv4、ipv6俩个地址
但是ipv6默认为集合中的第一个,是否我们可以尝试修改集合第一个为ipv4呢?

到这里有个问题,getAllByName函数耗时吗?如果不耗时,就是网络请求访问ipv6网址耗时,需要求证。
问题一: getAllByName是否耗时

相关文章

  • 网络请求优化之取消请求

    网络请求优化之取消请求 网络请求优化之取消请求

  • 2022-01-25

    蛙笑网络请求优化方案 优化目的 解耦网络请求,解决嵌套地狱,减少内存泄漏 方案对比 原始请求方式: 改造完成的请求...

  • 网络优化(一)缓存优化

    除了上面的JobSchedule的网络时机请求的网络优化还有其他优化。 1.请求的缓存。Http请求是可以做缓存的...

  • 网络优化

    6.网络优化 客户端网络优化 多个请求合并为一个请求 保持长连接,设置请求header的connection:ke...

  • 网络请求优化

    网络请求: 1. 在进行网络请求前 先判断网络是否可用 系统方法 AF (参考) 2. 在进行网络请求前 先判断网...

  • 网络请求优化

    网络优化,首先要考虑网络请求有哪些过程,组拼数据------> 封装请求发起请求--->DNS获取ip-->通过h...

  • 前端性能优化

    前端性能优化 1.网络请求 DNS 查询优化 减少请求域名数量 减少请求数 合并文件 css 合并 js Spri...

  • 【iOS】iOS电量优化方案

    1、 网络方面的优化 请求前判断网络状态,网络不可用,不要尝试执行网络请求; 请求前设置合适的超时时间,避免长时间...

  • Web性能优化总结

    减少HTTP请求 页面内部优化; 启用缓存; 减少下载量 网络连接上的优化 减少HTTP请求: CSS Sprit...

  • 性能优化

    减少请求数量 减小资源大小 优化网络连接 优化资源加载 减少重绘回流 使用性能更好的API 构建优化 减少请求数量...

网友评论

      本文标题:网络请求优化

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