在 Apple 的文档 URL Loading System
中,详细介绍了一个请求是如何创建、发起、回传数据的,还包括了证书认证,cookie 等一系列的操作,但是好像唯独遗漏了一个特殊的类: NSURLProtocol
,其实在我们日常开发中,是有可能需要跟这个类打交道的,比如网页的缓存,request 重定向等一系列的需求。
iOS 操作系统,已经对请求中的认证需求(有的文章中称为 挑战),做了简单的处理。当我们使用NSURLSession
发起一次请求时,假如服务端返回数据要求客户端进行需求认证,不管这次需求认证是 HTTP Basic 类型(例如要求输入用户名/密码)、 ServerTrust 类型(对服务器的一个认证,单向认证),或者是 ClientCertificate 类型(对客户端的认证,双向认证),最终都会回调下面这个方法:
今天这次记录是时间最短的一个,我提前 15 分钟到了面试地点,半个小时就面完了,面试官很温柔,应该是移动端负责人,非 iOS 出身,对技术的提问也是浅尝辄止,主要是考察被面试者的项目经验,逻辑思维等。