6: iOS中内省的几个方法?class方法和objc_getClass方法有什么区别?

  • 1: 什么是内省?
  • 2:iOS中内省的几个方法?
  • 3:class方法分类方法和对象方法。

  • 4.object_getClass()获取的是类型,对象.isa --->类.isa --->元类.isa ---> 父元类.isa ---> 根元类.isa ---> 自己(还是根元类)

7: 分类和扩展有什么区别?可以分别用来做什么?分类有哪些局限性?分类的结构体里面有哪些成员?

分类和扩展的区别:

分类的局限性:

分类的结构体里有哪些成员

struct category_t {
    const char *name; //名字
    classref_t cls; //类的引用
    struct method_list_t *instanceMethods;//实例方法列表
    struct method_list_t *classMethods;//类方法列表
    struct protocol_list_t *protocols;//协议列表
    struct property_list_t *instanceProperties;//实例属性列表
    // 此属性不一定真正的存在
    struct property_list_t *_classProperties;//类属性列表
};

8:能不能简述一下 Dealloc 的实现机制

Dealloc 的实现机制是内容管理部分的重点,把这个知识点弄明白,对于全方位的理解内存管理的只是很有 必要。

1.Dealloc 调用流程

2.object_dispose() 调用流程

3.objc_destructInstance() 调用流程

4.clearDeallocating() 调用流程

9:HTTPS和HTTP的区别

HTTPS协议 = HTTP协议 + SSL/TLS协议

即HTTPS是安全的HTTP。

https, 全称Hyper Text Transfer Protocol Secure,相比http,多了一个secure,这一个secure是怎么来的呢?
这是由TLS(SSL)提供的!大概就是一个叫openSSLlibrary提供的。
httpshttp都属于application layer,基于TCP(以及UDP)协议,但是又完全不一样。
TCP用的port是80, https用的是443
(值得一提的是,google发明了一个新的协议,叫QUIC,并不基于TCP,用的port也是443, 同样是用来给https的。谷歌好牛逼啊。)
总体来说,https和http类似,但是比http安全。

10:TCP为什么要三次握手,四次挥手?

三次握手:

四次挥手:

为什么需要三次握手:

为了防止已失效的连接请求报文段突然又传送到了服务端,因而产生错误,假设这是一个早已失效的报文段。
server收到此失效的连接请求报文段后,就误认为是client再次发出的一个新的连接请求。
于是就向client发出确认报文段,同意建立连接。
假设不采用“三次握手”,那么只要server发出确认,新的连接就建立了。
由于现在client并没有发出建立连接的请求,因此不会理睬server的确认,也不会向server发送数据。
server却以为新的运输连接已经建立,并一直等待client发来数据。
这样,server的很多资源就白白浪费掉了。

为什么需要四次挥手:

因为TCP是全双工通信的,在接收到客户端的关闭请求时,还可能在向客户端发送着数据,因此不能再回应关闭链接的请求时,同时发送关闭链接的请求

11. 对称加密和非对称加密的区别?分别有哪些算法的实现?

对称加密,加密的加密和解密使用同一密钥。

12. HTTPS的握手流程?为什么密钥的传递需要使用非对称加密?双向认证了解么?

HTTPS的握手流程,如下图,摘自图解HTTP

为什么密钥的传递需要使用非对称加密?

使用非对称加密是为了后面客户端生成的Pre-master secret密钥的安全,通过上面的步骤能得知,服务器向客户端发送公钥证书这一步是有可能被别人拦截的,如果使用对称加密的话,在客户端向服务端发送Pre-master secret密钥的时候,被黑客拦截的话,就能够使用公钥进行解码,就无法保证Pre-master secret密钥的安全了

双向认证了解么?

上面的HTTPS的通信流程只验证了服务端的身份,而服务端没有验证客户端的身份,双向认证是服务端也要确保客户端的身份,大概流程是客户端在校验完服务器的证书之后,会向服务器发送自己的公钥,然后服务端用公钥加密产生一个新的密钥,传给客户端,客户端再用私钥解密,以后就用此密钥进行对称加密的通信

文末推荐:iOS热门文集&视频解析

① Swift

② iOS底层技术

③ iOS逆向防护

④ iOS面试合集

⑤ 大厂面试题+底层技术+逆向安防+Swift

03-05 20:56