网络协议和请求

这一篇做一下网络请求的回顾总结。

1、TCP   HTTP   UDP三者的关系:

        (1)TCP/IP是个协议组,可分为四个层次:网络接口层、网络层、传输层和应用层。

        (2)在网络层有:IP协议、ICMP协议、ARP协议、RARP协议和BOOTP协议。

        (3)在传输层中有:TCP协议与UDP协议。 

        (4)在应用层有:FTP、HTTP、TELNET、SMTP、DNS等协议。 

        (5)因此,HTTP本身就是一个协议,是从Web服务器传输超文本到本地浏览器的传送协议。

1.TCP

TCP是面向连接的、传输可靠(保证数据正确性且保证数据顺序)、用于传输大量数据(流模式)、速度慢,建立连接需要开销较多(时间,系统资源)。

TCP三次握手:建立一个TCP连接时,需要客户端和服务器总共发送3个包。

TCP四次挥手:TCP的连接的拆除需要发送四个包

优缺点: 连接 可靠,稳定,有确认、窗口、重传、拥塞控制机制,在数据传完后,还会断开连接用来节约系统资源。缺点是 慢,效率低,占用系统资源高,

2.UDP

面向非连接、传输不可靠、用于传输少量数据(数据包模式)、速度快。如果网络质量不好,就会很容易丢包

3.HTTP

HTTP协议即超文本传送协议(HypertextTransfer Protocol ),是Web联网的基础,也是手机联网常用的协议之一,HTTP协议是建立在TCP协议之上的一种应用。基于应用级的接口使用方便。容错性强

4.Socket

双向的通信连接实现数据的交换,这个连接的一端称为一个socket,提供了网络通信的能力。

Socket 优点:
 (1)  传输数据为字节级,传输数据可自定义,数据量小
 (2)传输数据时间短,性能高
 (3)适合于客户端和服务器端之间信息实时交互
 (4)可以加密,数据安全性强
Socket缺点:
(1)需对传输的数据进行解析,转化成应用级的数据
(2)相对于Http协议传输,增加了开发量
 

Retrofit与okhttp:

Retrofit与okhttp共同出自于Square公司,该公司还贡献了Picasso,retrofit就是对okhttp做了一层封装。把网络请求都交给给了Okhttp,我们只需要通过简单的配置就能使用retrofit来进行网络请求了,其主要作者是Android大神JakeWharton

关于okhttp的解析转我前面的文章okhttp原理解析

Retrofit在处理HTTP请求的时候,因为不同场景或者边界情况等比较难处理。你需要考虑网络状态,需要在请求失败后重试,需要处理HTTPS等问题。Retrofit强大且配置灵活,第三和OkHttp无缝衔接,第四Jack Wharton主导

优点: 
可以配置不同HTTP client来实现网络请求,如okhttp、httpclient等 
请求的方法参数注解都可以定制 
支持同步、异步和RxJava 
超级解耦 
可以配置不同的反序列化工具来解析数据,如json、xml等 
使用非常方便灵活 
框架使用了很多设计模式(感兴趣的可以看看源码学习学习) 
缺点: 
不能接触序列化实体和响应数据 
执行的机制太严格 
使用转换器比较低效 
只能支持简单自定义参数类型 
当工程有多个业务存在,你有一些业务可能访问的地址头会有多个,即baseUrl的切换问题:

在Base做一个公用的,特别业务自身一个Retrofit实例然后创建ApiService,这样就能够间隔不同的业务,其Base底层提供一个复用OkHttpClient,缺点是Retrofit实例变多,或者用@Header的注解来标注使用哪个访问基类地址

 

相关推荐:

Android的开发之&论网络加载框架(Android-async-http,afinal,xUtils,Volley,okhttp,Retrofit)的特点和优缺点

组件化网络请求

Retrofit基本使用和源码解析

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值