面试相关的问题(2)

1.http与https的区别

1.HTTPS更安全
HTTPS协议是由SSL+http协议构建的可进行加密传输、身份认证的网络协议、要比http协议安全
2.HTTPS需要申请证书
HTTPS协议需要到CA申请证书,
3.端口不同
http使用的是大家都常见的80端口,而https连接使用的是443端口;
4.状态不同
http的连接很简单,是无状态的,而https洗衣是由SSL+HTTP协议构建的可进行加密传输,身份认证的网络协议。

2.HTTP状态码

1** 服务器收到请求,需要请求者继续执行
2** 成功,操作被成功接收并处理
3** 重定向 需要进一步的操作以完成请求
4** 客户端错误。请求包含预防错误或无法完成请求
5** 服务器错误,服务器在处理请求的过程中发生错误

TCP协议中三次握手

1.第一次握手:建立连接时,客户端A发生SYN包(SYN=j)到服务器,并进入SYN_SEND状态,等待服务器B确认。
2.第二次握手:服务器B收到SYN包,必须去人客户端A的SYN(ACK=j+1),同时自己也发生一个SYN包(SYN=K),即SYN+ACK包,此时服务器B进入SYN_RECV状态。
3.第三次握手:客户端A收到服务器的SYN+ACK包,向服务器B发送确认包ACK(ACK=k+1),此包发送完毕,客户端A和服务器B进入ESTABLISHED状态,完成三次握手
完成三次握手,客户端与服务器开始传送数据

TCP协议中四次挥手

1.客户端A发送一个FIN,用来关闭客户A到服务器B的数据传送
2.服务器收到这个FIN,它发回一个ACK,确认序号为收到的序号加1,和SYN一样,一个FIN将占用一个序号;
3.服务端B关闭与客户端A的连接,发送一个FIN给客户端A;
4.客户端A发送ACK报文确认,并将确认序号设置为收到需要1。

数据结构

链表

栈和队列

二叉树

多线程什么时候用GCD什么时候用NSOperation

GCD是基于C语言的底层API,NSOperation属于OC类。iOS首先引入的是NSOperation,iOS4之后引入了GCD和NSOperationQueue并且其内部是用GCD实现的。
GCD的优点:GCD主要与block结合使用,代码简洁高效,执行效率稍微高点

NSOperation相比于GCD:
1.NSOperation拥有更多函数可用,NSOperationQueue是在GCD基础上实现的,只不过是GCD更高一层的抽象
2.在NSOperationQueue中,可以建立多个NSOperation之间的依赖关系;
3.NSOperationQueue支持KVO,可以检测operation是否正在执行,是否结束,是否取消;
4.GCD只支持FIFO的队列,而NSOperationQueue可以调整队列的执行顺序,NSOperationQueue可以方便管理并发、NSOperation之间的优先级。

使用NSOperation的情况:各个操作之间有依赖关系、操作需要取消暂停、并发管理、控制操作之间优先级,限制同时能执行的线程数量,让线程在某时刻停止/继续等。
使用GCD的情况:一般的需求很简单的多线程操作,用GCD都可以了,简单高效。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • ———————————————回答好下面的足够了---------------------------------...
    恒爱DE问候阅读 1,764评论 0 4
  • __block和__weak修饰符的区别其实是挺明显的:1.__block不管是ARC还是MRC模式下都可以使用,...
    LZM轮回阅读 3,387评论 0 6
  • 1、OC中创建线程的方法是什么?如果指定在主线程中执行代码?如何延时执行代码。【难度系数★★】 1)创建线程的方法...
    木旁_G阅读 1,994评论 2 16
  • 史上最全的iOS面试题及答案 iOS面试小贴士———————————————回答好下面的足够了----------...
    Style_伟阅读 2,449评论 0 35
  • iOS面试小贴士 ———————————————回答好下面的足够了------------------------...
    不言不爱阅读 2,014评论 0 7