工作4年多了,说下最近1年面试的要点吧(答案都是自己总结的,要是有更好的答案欢迎发送邮件到18560459018@163.com)
1、介绍下HTTP
HTTP协议(HyperText Transfer Protocol,超文本传输协议)是用于从WWW服务器传输超文本到本地浏览器的传送协议。它可以使浏览器更加高效,使网络传输减少。它不仅保证计算机正确快速地传输超文本文档,还确定传输文档中的哪一部分,以及哪部分内容首先显示(如文本先于图形)等。
HTTP是一个应用层协议,由请求和响应构成,是一个标准的客户端服务器模型。HTTP是一个无状态的协议。HTTP协议通常承载于TCP协议之上,有时也承载于TLS或SSL协议层之上,这个时候,就成了我们常说的HTTPS
工作流程:
1)首先客户机与服务器需要建立连接。只要单击某个超级链接,HTTP的工作开始。
2)建立连接后,客户机发送一个请求给服务器,请求方式的格式为:统一资源标识符(URL)、协议版本号,后边是MIME信息包括请求修饰符、客户机信息和可能的内容。
3)服务器接到请求后,给予相应的响应信息,其格式为一个状态行,包括信息的协议版本号、一个成功或错误的代码,后边是MIME信息包括服务器信息、实体信息和可能的内容。
4)客户端接收服务器所返回的信息通过浏览器显示在用户的显示屏上,然后客户机与服务器断开连接。
想深入了解的朋友可以点这里
2、项目中用到多线程了吗,是如果处理的?并行的异步线程是如何处理的?
多线程想必99.9%的APP都使用了,AFNetworking里使用了GCD和NSThread。在进行大量计算非UI的时候我们也可能放到异步线程了来执行。相对实现多线程的3种方法:GCD、NSThread、NSOperation就不介绍了。
对于并行的异步线程,GCD是有串行队列和并发队列的,如果想要顺序执行,选择串行队列处理,反之选择并发队列处理。
网友评论