• iOS基础


    一、网络访问的四个步骤

    l 第一步:确定地址URL

    l 第二步:建立请求

    l 第三步:建立并启动连接

    l 第四步:连接完成,处理结果

    备注:URL,统一资源定位符(URL,英语Uniform Resource Locator的缩写)也被称为网页地址,是因特网上标准的资源的地址。iOS中资源地址一般都是使用NSURL描述的,包括:网页、本地文件、音频、视频、电话、短信等

    二、iOS网络处理常用类

    l NSURL(地址)

    请求地址

    l NSURLRequest(请求,GET请求使用)

    保存需要传送给Web服务器的全部数据:

    一个NSURL对象

    缓存策略

    等待Web服务器响应的最长时间

    请求头(在iOS开发中,系统已经自动处理,程序员不需要考虑)

    请求体

    l NSMutableURLRequest(可变请求,POST请求使用)

    NSURLRequest的可修改子类

    l NSURLConnection(连接)

    负责创建客户端和Web服务器之间的网络连接、发送NSURLRequest对象中的数据并收集来自服务器的响应

    三、NSURLConnectionDataDelegate的常用代理方法

    之所以使用代理方法,是因为要处理请求返回的结果!

    // 服务器开始返回数据

    (void)connection:didReceiveResponse:

    // 收到服务器返回的数据,本方法会被调用多次

    - (void)connection:didReceiveData:

    // 数据接收完毕,做数据的最后处理

    (void)connectionDidFinishLoading:

    // 网络连接错误

    - (void)connection:didFailWithError:

    // 发送数据给服务器,POST 请求使用此方法

    - (void)connection:didSendBodyData:totalBytesWritten: totalBytesExpectedToWrite:

    四、网络请求之 GET vs POST

    有两种常用的方法把数据提交给服务器:GETPOST

    l GET

    GET的语义是获取指定URL上的资源

    将数据按照variable=value的形式,添加到action所指向的URL后面,并且两者使用“?”连接,各个变量之间使用“&”连接

    不安全,因为在传输过程中,数据被放在请求的URL

    传输的数据量小,这主要是因为受URL长度限制

    l POST

    POST的语意是对指定资源“追加/添加”数据

    将数据放在数据体中,按照变量和值相对应的方式,传递到action所指向URL

    所有数据对用户来说不可见

    可以传输大量数据,上传文件只能使用Post

    五、NSURLConnectionDataDelegate数据代理方法回顾

    开始接收

    接收数据

    完成接收

    出现错误

    如果是POST请求,发送数据,通常用于上传文件

    六、关于代理方法

    l 代理方法存在的问题

    代理方法较多,比较分散

    要处理一个请求,需要在很多地方编写代码

    不利于逻辑实现、代码编写、调试、维护以及扩展

    尤其当存在多个请求时会变得非常麻烦!

    l 已经学习过的代理方法

    UIApplicationDelegate

    UITableViewDelegateUITableViewDataSource

    UITextFieldDelegate

    通过协议自定义代理方法

    NSURLConnectionDataDelegate

    七、同步请求和异步请求

    l NSURLConnection提供了两个静态方法可以直接同步或异步调用NSURLRequest,而无需通过NSURLConnectionDataDelegate获取数据

    l 同步请求:

    sendSynchronousRequest:request returningResponse:&response error:&error

    l 异步请求:

    sendAsynchronousRequest:request queue:[NSOperationQueue mainQueue] completionHandler:^(NSURLResponse *response, NSData *data, NSError *error)

    八、缓存策略

    l NSURLRequestcachePolicy属性可以设置缓存策略,这是一种内存缓存,非硬盘缓存

    l 使用缓存的目的是为了使用的应用程序能更快速的响应用户输入,使程序高效的运行。有时候我们需要将远程web服务器获取的数据缓存起来,减少对同一个url多次请求

    l cachePolicy支持的缓存策略包括:

    NSURLRequestUseProtocolCachePolicy 默认的缓存策略,要在协议的实现方法中指定缓存逻辑

    NSURLRequestReloadIgnoringCacheData 忽略缓存从原始地址下载

    NSURLRequestReturnCacheDataElseLoad 没有缓存时从原始地址下载

    NSURLRequestReturnCacheDataDontLoad 只使用缓存,如果不存在缓存,请求失败,适用于没有建立网络连接离线模式

    NSURLRequestReloadIgnoringLocalAndRemoteCacheData 忽略本地和远程的缓存数据,直接从原始地址下载,与NSURLRequestReloadIgnoringCacheData类似

    NSURLRequestReloadRevalidatingCacheData 验证本地数据与远程数据是否相同,如果不同则下载远程数据,否则使用本地数据

    九、本地数据存储的原则

    l 与安全相关的用户信息(明文)

    用户密码

    银行账号

    l 原则:

    任何应用程序都不能在本地直接存储与安全相关的用户信息

    任何应用程序在于服务器传递数据时,都不能直接传输与安全相关的用户信息

    十、数据安全——MD5

    l Message Digest Algorithm MD5(中文名为消息摘要算法第五版)为计算机安全领域广泛使用的一种散列函数,用以提供消息的完整性保护。该算法的文件号为RFC 1321

    l MD5用于确保信息传输完整一致。是计算机广泛使用的杂凑算法之一(又译摘要算法、哈希算法),主流编程语言普遍已有MD5实现

    l MD5的典型应用是对一段字节串产生指纹,以防止被“篡改”。例如,可以对一个readme.txt生成一个MD5的值并记录在案,如果其他人修改了文件中的任何内容,对该文件重新计算的MD5值会发生变化

    l MD5还广泛用于操作系统的登录认证上,如Unix、各类BSD系统登录密码、数字签名等诸多方面

    十一、SHA-1简介

    l SHA (Secure Hash Algorithm,译作安全散列算法由美国国家安全局 (NSA) 设计,美国国家标准与技术研究院(NIST) 发布的一系列密码散列函数

    l SHA-1, SHA-224, SHA-256, SHA-384 和 SHA-512都被需要安全散列算法的美国联邦政府所应用,他们也使用其他的密码算法和协定来保护敏感的未保密资料

    l SHA-1散列函数用可能会被用来实现个人电脑上的数字版权的管理

  • 相关阅读:
    Flask学习笔记1:基础知识
    Git学习笔记3:下载指定项目的单个文件或文件夹
    Tensorflow学习笔记6:解决tensorflow训练过程中GPU未调用问题
    Python学习笔记32:UDP协议链接
    Python学习笔记31:图片URL批量转存到本地
    软件安装笔记3:tesseract-ocr for mac和homebrew
    软件安装笔记2:Aria2百度云加速下载器
    软件安装笔记1:破解安装SecureCRT for mac及解决中文乱码问题
    forward(转发)与redirect(重定向)的区别
    剑指Offer_编程题_丑数
  • 原文地址:https://www.cnblogs.com/monicaios/p/3525579.html
Copyright © 2020-2023  润新知