ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
简单题: 一、简述对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展示不同的列表项。