iOS HTTPS相关整理

HTTPS

HTTPS与HTTP没有任何的区别,HTTPS就是将HTTP协议数据包放到SSL/TSL层加密后,在TCP/IP层组成IP数据报去传输,以此保证传输数据的安全;而对于接收端,在SSL/TSL将接收的数据包解密之后,将数据传给HTTP协议层,就是普通的HTTP数据。HTTP和SSL/TSL都处于OSI模型的应用层。HTTPS连接建立过程大致是,客户端和服务端建立一个连接,服务端返回一个证书,客户端里存有各个受信任的证书机构根证书,用这些根证书对服务端返回的证书进行验证,经验证如果证书是可信任的,就生成一个pre-master secret,用这个证书的公钥加密后发送给服务端,服务端用私钥解密后得到pre-master secret,再根据某种算法生成master secret,客户端也同样根据这种算法从pre-master secret生成master secret,随后双方的通信都用这个master secret对传输数据进行加密解密。

参考阅读
HTTPS那些事
SSL/TLS协议运行机制的概述
图解SSL/TLS协议

SSL证书,有以下几种方式:

  1. 使用正规的商用授权证书,需要花钱的,据说也不算贵。四五十美金一年(自己没用过)。如果有这样的证书,AFNetworking不用任何额外的设置,只是在POST或者GET是使用的URL变成https开头的就可以了。
  2. 使用自己生成SSL证书:也就是使用无效证书。这种方式也比较普遍,尤其对中小企业和个人开发来讲,免费总是好的,而且灵活自如。随时可以更换证书。对于这种方式,AFNetworking也是支持的,但需要额外的几行配置代码才行。同时,这种方式有两种不同的连接方式:
    2.1:证书不保存在手机客户端,客户端接收所有无效证书。
    2.2:客户端只接受来自特定服务器端的证书。

    Read More

谈谈消息传递机制

在当前的IOS开发中有着各种消息传递机制,包括

  1. KVO
  2. Notification
  3. Delegation
  4. Block
  5. target-action
  6. 已及当前最新的RAC(ReactiveCocoa)方式

那么我们该如何选择哪种情况下使用哪种机制呢,当然,有些情况下该使用什么机制没有唯一的答案,下面只谈谈自己对这些机制的理解

KVO

KVO是提供对象属性被改变时的通知的机制。KVO 的实现在 Foundation 中,很多基于 Foundation 的框架都依赖它,如果只对某个对象的值的改变感兴趣的话,就可以使用 KVO 消息传递,当然必须通过SET方法这种设置属性的方法才能响应KVO

Read More