1. 详细计算机网络基础
2. 描述一次网络请求的流程
域名解析 -----> TCP的三次握手 -----> 建立TCP连接后发起HTTP请求 -----> 服务器响应HTTP请求 ----->( 浏览器解析html代码,同时请求html代码中的资源(如js、css、图片等)、最后浏览器对页面进行渲染并呈现给用户) -----> 四次挥手结束连接
描述一次完整的网络请求过程
3. 详细的HTTP报文结构
4. HttpClient和HttpURLConnection的区别
在Android 2.2版本之前,HttpClient拥有较少的bug,因此使用它是最好的选择。
而在Android 2.3版本及以后,HttpURLConnection则是最佳的选择。它的API简单,体积较小,因而非常适用于Android项目。压缩和缓存机制可以有效地减少网络访问的流量,在提升速度和省电方面也起到了较大的作用。对于新的应用程序应该更加偏向于使用HttpURLConnection。
HttpClient和HttpURLConnection的区别
5. TCP三次握手,四次挥手的具体细节
可以二次握手吗?Server端易受到SYN攻击?为什么A在TIME-WAIT状态必须等待2MSL的时间?为什么连接的时候是三次握手,关闭的时候却是四次握手?在下面这篇文章里可以找到答案
TCP三次握手,四次挥手过程
6. Http的缓存机制
第一篇是详细的HTTP缓存机制的介绍,第二篇中有两个小问题可以自己检查一下是否真的理解HTTP的缓存机制。
彻底弄懂HTTP缓存机制及原理
Http协议:彻底弄懂 Http 缓存机制 - 基于缓存策略三要素分解法
7. Https描述和实现
下面两篇一起看可以更好的理解HTTPS其中的设计
HTTPS原理与实现
也许,这样理解HTTPS更容易
8. Volley
9. okhttp
掌握着三篇就算彻底弄懂okhttp,第一篇基础,后面两篇需要好好啃一啃,第二篇是整个流程的分析,能看懂基本上就把okhttp的请求流程掌握了。最后一篇是更加细节的东西,个人建议先看完第二篇再看这篇。
OkHttp基础的使用
带你读懂OkHttp源码结构
OkHttp 3.7源码分析
10. Retrofit
第一遍介绍的如何使用Retrofit2;第二篇是抛物线的匠心之作结合RxJava使用;第三篇更加综合。
你真的会用Retrofit2吗?Retrofit2完全教程
给 Android 开发者的 RxJava 详解
Android:手把手带你 深入读懂 Retrofit 2.0