Android网络编程要学的东西与Http协议学习

本节开始我们来学习Android网络编程相关的一些东西:Android端网络编程是要干嘛?http协议的学习,使用自带扣脚Json解析类解析Json,XML解析常用的几种方式,HttpUrlConnection和 HttpClient的使用,文件的上传,下载,WebService的使用,WebView,Socket通信的使用等!

 

1.Android与互联网交互的三种方式

Android网络编程要学的东西与Http协议学习

 

2.初始Http协议

实际开发中我们和服务端打交道一般用得都是基于Http协议的通信,所以学好Http协议是非常重要的,当然我们不用过于考虑一些细节的东西,有个大体的了解即可!都是一些概念性的东西!

(1)什么是Http协议

答:hypertext transfer protocol(超文本传输协议),TCP/IP协议的一个应用层协议,由于定义WEB浏览器和WEB服务器之间交换数据的过程,客户端连上web服务器后,若想获取web服务器中的某个web资源,需准守一定的通讯格式,HTTP协议用于定义客户端与web服务器通迅的格式。

(2)Http 1.0 与 Http 1.1的区别

答:1.0协议,客户端与web服务器建立连接后,只获得一个web资源。而1.1协议,允许客户端与web服务器建立连接后,在一个连接上获取多个web资源!

(3)Http协议的底层工作流程:

答:我们先要知道两个名词:

SYN(synchronous):TCP/IP 建立连接时使用的握手信号。

ACK(Acknowledgement):确认字符,确认发来的数据已经接收无误

      接着就到TCP/IP三次握手的概念:

客户端发送syn包(syn=j)到服务器,进入SYN_SEND状态,然后等待服务器确认。

服务器收到syn包,确认客户的syn(ack = j + 1),同时在自己也发送一个SYN包(syn=k), 即SYN + ACK包,服务器进入SYN_RECV状态

客户端收到SYN + ACK包,向服务器发送确认包ACK(ack = k +1),发送完毕后,客户端与服务端 进入ESTABLISHED状态,完成三次握手,然后两者开始传送数据

如果还不是很清晰,我们再来看三次握手的示意图:

Android网络编程要学的东西与Http协议学习

了解了是吧,然后我们就来看看Http操作的一个流程了:

用户点击浏览器的url(超链接)web浏览器与web服务器建立连接

建立连接后,客户端发送请求给服务器,请求的格式为:统一资源标识符(URL)+协议版本号(一般是1.1)+MIME信息(多个消息头)+一个空行

服务端收到请求后,给予相应的返回信息,请求的格式为:协议版本号+状态行(处理结果)+多个信息头+空行+实体内容(比如返回的HTML)

客户端接收服务端返回的信息,通过浏览器显示出来,然后与服务端断开连接,当然如果中途 某步发生错误的话,错误信息返回到客户端,并显示,如:经典的404错误!

 

(4)Http协议的业务流程

Android网络编程要学的东西与Http协议学习

(5)Http的几种请求方式

实际开发中我们用得比较多的方式是Get和Post,但是实际开发可能还会用到其他请求方式,比如PUT,实际项目中就用到了,下面为了方便大家,就把所有的请求方式列出来吧

get:  请求获取Request-URI所标识的资源

post: 在Request-URI所标识的资源后附加新的数据

head: 请求获取由Request-URI所标识的资源的响应信息报头

put: 请求服务器存储一个资源,并用Request-URI作为其标识

delete:请求服务器删除Request-URI所标识的资源

trace: 请求服务器回送收到的请求信息,主要用于测试或诊断

connect:  保留将来使用

options: 请求查询服务器的性能,或者查询与资源相关的选项

(6)Get和Post的对比

用得最多的两个,当然要做一下对比啦!

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zzsyfd.html