简单题:
一、简述对http协议的理解(什么是,组成部分,get与post的区别)。
****
1. Http协议 是因特网上应用最为广泛的 基于TCP/IP通信协议来传递数据的 属于应用层的 一种网络传输协议。Http的全称是(HyperText Transfer Protocol,超文本传输协议)。
2. Http由请求和响应组成。请求包括:请求行(request line)、请求头部(header)、空行和请求数据四个部分组成。响应包括:状态行、消息报头、空行和响应正文。
3. Get和Post的区别:
* GET提交的数据会放在URL之后,以?分割URL和传输数据,参数之间以&相连,POST方法是把提交的数据放在HTTP包的Body中。
* GET提交的数据大小有限制(因为浏览器对URL的长度有限制),而POST方法提交的数据没有限制.
* GET方式提交数据,会带来安全问题,比如一个登录页面,通过GET方式提交数据时,用户名和密码将出现在URL上,如果页面可以被缓存或者其他人可以访问这台机器,就可以从历史记录获得该用户的账号和密码.
****
二、简述tcp三次握手的过程(能画出简图,并文字描述,可那满分)
****
### 第一次
![](https://box.kancloud.cn/5aab259e426669f783fba26718cead73_445x244.jpg)
第一次握手:建立连接时,客户端发送[syn](https://baike.baidu.com/item/syn)包(syn=j)到服务器,并进入[SYN\_SENT](https://baike.baidu.com/item/SYN_SENT)状态,等待服务器确认;SYN:同步序列编号(***Synchronize Sequence Numbers***)。
### 第二次
第二次握手
服务器收到[syn](https://baike.baidu.com/item/syn)包,必须确认客户的SYN([ack](https://baike.baidu.com/item/ack)\=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入[SYN\_RECV](https://baike.baidu.com/item/SYN_RECV)状态;
### 第三次
第三次握手:
客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK([ack](https://baike.baidu.com/item/ack)\=k+1),此包发送完毕,客户端和服务器进入[ESTABLISHED](https://baike.baidu.com/item/ESTABLISHED)(TCP连接成功)状态,完成三次握手。
完成三次握手,客户端与服务器开始传送数据。
****
三、简述AsyncTask中的execute(Params... params)与doInBackground(Params... params)的作用
****
1. execute(Params... params)的作用:触发异步任务的执行。
2. doInBackground(Params... params)的作用:在工作线程中执行异步任务。
****
四、简述HttpUrlConnection的Get请求的处理步骤
****
1. 创建URL对象;
2. 通过URL对象的openConnection方法获取一个URLConnection对象并强转成HTTPURLConnection类型。
3. 调用HTTPURLConnection的方法 设置请求方式(GET/POST/PUT/DELETE等)、连接超时、读取超时等。
4. 判断服务器响应吗是否是200。如果是200说明请求成功,否则做其他操作。
5. 服务响应成功,从HTTPURLConnection中读取输入流,并转换成我们想要的数据(String数据/Bitmap/文件等)。
****
五、简述ListView多条目的核心步骤;
****
1. 重写getItemViewType(int postion) 方法,返回对应postion条目要显示的View类型。
2. 重写getItemViewCount方法,返回要显示View类型的数量。
3. 在getView方法中,获取条目类型并判断,使用convertView加载不同的布局文件,从而完成一个ListView展示不同的列表项。
- 咨询项目实战
- 第一单元 HTTP协议
- 1.1 OSI七层模型
- 1.2 HTTP协议(重点)
- 1.3 HTTPS协议(了解)
- 1.4 TCP/IP协议扩展
- 1.5 WebService简介及实战(无接口)
- 1.6 课后练习
- 第二单元 HTTPURLConnection
- 2.1 ANR
- 2.2 网络判断
- 2.3 HTTPURLConnection
- 2.4 课后练习
- 第三单元 AsyncTask
- 3.1 AsyncTask概述
- 3.2 AsyncTask基本使用
- 3.3 课后练习
- 第四单元 图片异步加载
- 4.1 图片异步加载概述
- 4.2 LruCache
- 4.3 DiskLRUCache
- 4.4 图片三级缓存概述
- 4.5 封装图片加载缓存框架
- 第五单元 ListView多条目
- 5.1 ListView多条目概述
- 5.2 ListView多条目的使用
- 第六单元 ListView实现下拉刷新上拉加载
- 6.1 下拉刷新和上拉加载更多
- 6.2 XListView概述
- 6.3 XListView的使用
- 第七单元 封装网络框
- 7.1 封装网络框架概述
- 7.2 网络框架的封装
- 第八单元 项目介绍
- 8.1 公司项目团队架构简介
- 8.2 项目文档及项目流程介绍
- 8.3 项目管理
- 8.4 项目开发
- 第九单元 项目框架搭建
- 9.1 基类封装概述
- 9.2 Application中初始化配置
- 9.3 项目中的工具类
- 9.4 封装网络请求框架
- 9.5 封装图片异步缓存框架
- 第十单元 搭建UI框架1
- 10.1 侧滑菜单概述
- 10.2 主界面框架搭建
- 第十一单元 搭建UI框架2
- 11.1 TabLayout的概述
- 11.2 TabLayout的使用
- 第十二单元 图片上传
- 12.1 图片上传概述
- 12.2 图片上传的实现
- 第十三单元 PullToRefresh
- 13.1 PullToRefresh概述
- 13.2 PullToRefresh的使用
- 13.3 缓存业务实现思路
- 第十四单元 事件分发及滑动冲突
- 14.1 事件分发概述
- 14.2 事件分发流程
- 14.3 事件分发的使用
- 第十五单元 传感器的基本使用
- 15.1 传感器概述
- 15.2 传感器的使用
- 第十六单元 HTML与CSS复习
- 16.1 HTML
- 16.2 CSS
- 第十七单元 js复习
- 17.1 js基础语法
- 17.2 js数组和内置对象
- 17.3 js常用事件
- 17.4 js对象模型
- 17.5 js 正则表达式
- 第十八单元 WebView
- 18.1 WebView 概述
- 18.2 WebView的使用
- 18.3 WebView与js交互
- 第十九单元 项目案例
- 项目概述
- 第二十单元 项目答辩
- 周考
- 第一周周考
- 第二周周考
- 第三种周考
- 月考
- 接口文档