您的位置:首页 >7.1.1 Android网络编程要学的东西与Http协议学习
发布于2026-08-12 阅读(0)
扫一扫,手机访问
不知不觉终于来到Android网络编程这一章节,前面我们玩的都是单机,肯定是不过瘾是吧, 本节开始我们来学习Android网络编程相关的一些东西:Android端网络编程要干嘛?Http协议 的学习,使用自带扣脚Json解析类解析Json,XML解析的几种常用方式,HttpUrlConnection和 HttpClient的使用,文件的上传,下载;WebService的使用,WebView,Socket通信的使用等!
另外我们是客户端,服务端的内容不在我们的范畴,而且小猪也不擅长,我们的最低要求是: 能够掌握获取与解析服务器反馈的数据的能力! 好的,话不多说,开始本节内容!

实际开发中我们和服务端打交道一般用得都是基于Http协议的通信,所以学好Http协议是非常 重要的,当然,我们不用过于考究一些细节的东西,有个大体的了解即可!都是一些概念性的东西!
答:HTTP,全称 hypertext transfer protocol(超文本传输协议),属于 TCP/IP 协议体系中的应用层协议,主要用来约定 Web 浏览器和 Web 服务器之间交换数据的方式。客户端连接到 Web 服务器之后,如果想获取服务器上的某个 Web 资源,就必须按照统一的通信规则来完成请求与响应,而 HTTP 协议,定义的正是客户端与 Web 服务器之间这套通信格式。
答:1.0协议,客户端与web服务器建立连接后,只能获得一个web资源! 而1.1协议,允许客户端与web服务器建立连接后,在一个连接上获取多个web资源!
答:我们先要知道两个名词:
- 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状态,完成三次握手,然后两者开始传送数据
如果还不是很清晰,我们再来看三次握手的示意图:
了解了是吧,然后我们就来看看Http操作的一个流程了:
- 用户点击浏览器上的url(超链接),Web浏览器与Web服务器建立连接
- 建立连接后,客户端发送请求给服务器,请求的格式为: 统一资源标识符(URL)+协议版本号(一般是1.1)+MIME信息(多个消息头)+一个空行
- 服务端收到请求后,给予相应的返回信息,返回格式为: 协议版本号 + 状态行(处理结果) + 多个信息头 + 空行 + 实体内容(比如返回的HTML)
- 客户端接收服务端返回信息,通过浏览器显示出来,然后与服务端断开连接;当然如果中途 某步发生错误的话,错误信息会返回到客户端,并显示,比如:经典的404错误!
对于上面的流程如果还不清晰,我们可以使用HttpWatch或者firefox抓下包: PS:测试网站是小猪的学校的教务系统,输入账号密码后请求登陆,我们可以看到下述信息:
HTTP请求包含的内容:
HTTP响应包括的内容:
这就一目了然了是吧!

实际开发中我们用得较多的方式是Get和Post,但是实际开发可能还会用到其他请求方式,比如PUT, 小猪的实际项目中就用到了,下面为了方便大家,就把所有的请求方式列出来吧:
用得最多的两个,当然要做下对比啦!
当然,这些状态码更多是拿来作参考,真正怎么定,还是服务器端(后台)说了算。常见做法有两种:一种是请求发出后,服务器返回对应的状态;另一种在应用不需要做多语言版本时其实更省事,直接返回一段带结果信息的 Json,前端拿来直接展示就行,能省掉不少折腾。下面把状态码整理成一份合集,了解一下就够了:
概念性的东西,知道就好,别去背,百度百科的东西,直接复制粘贴:
1. 支持客户/服务器模式。
2. 简单快速:客户向服务器请求服务时,只需传送请求方法和路径。请求方法常用的有GET、 HEAD、POST。每种方法规定了客户与服务器联系的类型不同。 由于HTTP协议简单,使得HTTP服务器的程序规模小,因而通信速度很快。
3. 灵活:HTTP允许传输任意类型的数据对象。正在传输的类型由Content-Type加以标记。
4. 无连接:无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求, 并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。
5. 无状态:HTTP协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。 缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每 次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快。
PS:关于OSI七层协议以及TCP四层模型就不在基础系列讲解了~有兴趣可以自行了解下!
本节讲解了我们在Android开发中涉及到网络方面的要完成的工具,以及讲解了Http协议的 相关概念,相信大家对Android移动端与服务器交互已经有了个模糊的映像,下节我们来研究 Http协议的请求头与响应头!本节就到这里,谢谢~
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
4
5
6
7
8
9