zoukankan      html  css  js  c++  java
  • iOS网络基础---iOS-Apple苹果官方文档翻译

    本系列所有开发文档翻译链接地址:iOS7开发-Apple苹果iPhone开发Xcode官方文档翻译PDF下载地址

    897b223fe1bf63457e55de6d396ff5bb.png
    iOS网络基础    
    技术博客http://www.cnblogs.com/ChenYilong/ 新浪微博http://weibo.com/luohanchenyilong
    e28b3f7f796ada0cfee47908b11dbf57.png 998d95d41ed77fda2580e24cf449d72d.png
    百度一下,你就知道    
    897b223fe1bf63457e55de6d396ff5bb.png
    b77d0840e8b46bdbef76e9e5f10eb034.png
    b3531144e4464eb95a83930189e3c4ba.png 897b223fe1bf63457e55de6d396ff5bb.png 2f2454bc719ccb8d598a7dd28b0bc430.png
    百度搜索    
    897b223fe1bf63457e55de6d396ff5bb.png
    c8f38165d75c737f8dd3370b15949bd1.png
    网络访问步骤示意图(1)    
    897b223fe1bf63457e55de6d396ff5bb.png
    c779eab967aa00ccae5a8eb9f4a1968a.png
    网络访问步骤示意图(2)    
    897b223fe1bf63457e55de6d396ff5bb.png
    c8f38165d75c737f8dd3370b15949bd1.png
    网络访问的四个步骤    
     第一步:确定地址——URL  第二步:建立请求 第三步:建立并启动连接
    等待网络处理中......
     第四步:连接完成,处理结果
    备注:URL,统一资源定位符(URL,英语Uniform Resource Locator的缩 写)也被称为网页地址,是因特网上标准的资源的地址。iOS中资源地址 一般都是使用NSURL描述的,包括:网页、本地文件、音频、视频、电 话、短信等
    897b223fe1bf63457e55de6d396ff5bb.png
    iOS网络处理常用类    
     NSURL(地址)  请求地址
     NSURLRequest(请求,GET请求使用) 保存需要传送给Web服务器的全部数据:    
     一个NSURL对象      缓存策略      等待Web服务器响应的最长时间      请求头(iOS开发中,系统已经自动处理,程序员不需要考虑)      请求体
     NSMutableURLRequest(可请求,POST请求使用)  NSURLRequest的可修改子类
     NSURLConnection(连接)
     负责创建客户端和Web服务器之间的网络连接、发送NSURLRequest对象 中的数据并收集来自服务器的响应    

    //转载请注明出处--本文永久链接:http://www.cnblogs.com/ChenYilong/p/3495623.html
    897b223fe1bf63457e55de6d396ff5bb.png

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

    // 服务器开始返回数据     - (void)connection:didReceiveResponse:
    // 收到服务器返回的数据,本方法会被调用多次     - (void)connection:didReceiveData:
    // 数据接收完毕,做数据的最后处理     - (void)connectionDidFinishLoading:
    // 网络连接错误     - (void)connection:didFailWithError:
    // 发送数据给服务器,POST 请求使用此方法     - (void)connection:didSendBodyData:totalBytesWritten: totalBytesExpectedToWrite:    
    897b223fe1bf63457e55de6d396ff5bb.png
    网络访问基本演练    
    897b223fe1bf63457e55de6d396ff5bb.png
    70675aa707a0fad2a7a407d7a8f6cb61.png

    //转载请注明出处--本文永久链接:http://www.cnblogs.com/ChenYilong/p/3495623.html
    GET & POST     网络请求的两种常用方式    
    35e1d3a92b3da70a508e9424752595b4.png
    网络请求之 GET vs POST    
     有两种常用的方法把数据提交给服务器:GETPOST  GET
       GET的语义是获取指定URL上的资源
       将数据按照variable=value的形式,添加到action所指向的URL后面,并且
    两者使用“?”连接,各个变量之间使用“&”连接    
       不安全,因为在传输过程中,数据被放在请求的URL中    
       传输的数据量小,这主要是因为受URL长度限制
     POST
       POST的语意是对指定资源“追加/添加”数据
       将数据放在数据体中,按照变量和值相对应的方式,传递到action所指向 URL
       所有数据对用户来说不可见    
       可以传输大量数据,上传文件只能使用Post
     提示:面试时,需要从地址栏安全,和实际安全讲清楚 
    897b223fe1bf63457e55de6d396ff5bb.png
    b3531144e4464eb95a83930189e3c4ba.png 897b223fe1bf63457e55de6d396ff5bb.png 69ca734321ae49fdb83055cce85400cb.png
    GET & POST请求演练——准备项目介绍    
    897b223fe1bf63457e55de6d396ff5bb.png
    24661a75571e3868bb7bf7e01ffe6e49.png
    NSURLConnectionDataDelegate数据代理方法回顾    
     开始接收 接收数据 完成接收 出现错误 如果是POST请求,发送数据,通常用于上传文件
    897b223fe1bf63457e55de6d396ff5bb.png
    关于代理方法    
     代理方法存在的问题 代理方法较多,比较分散 要处理一个请求,需要在很多地方编写代码 不利于逻辑实现、代码编写、调试、维护以及扩展  尤其当存在多个请求时会变得非常麻烦 
     已经学习过的代理方法 UIApplicationDelegate
     UITableViewDelegateUITableViewDataSource  UITextFieldDelegate
     通过协议自定义代理方法 NSURLConnectionDataDelegate

    //转载请注明出处--本文永久链接:http://www.cnblogs.com/ChenYilong/p/3495623.html
    897b223fe1bf63457e55de6d396ff5bb.png
    同步请求和异步请求    
     NSURLConnection提供了两个静态方法可以直接同步或异步调 用NSURLRequest,而无需通过NSURLConnectionDataDelegate 获取数据
    Ø 同步请求:sendSynchronousRequest:request returningResponse:&response
    error:&error Ø 异步请求:
    sendAsynchronousRequest:request queue:[NSOperationQueue mainQueue] completionHandler:^(NSURLResponse *response, NSData *data, NSError *error)
    897b223fe1bf63457e55de6d396ff5bb.png
    同步和异步请求演练    
    897b223fe1bf63457e55de6d396ff5bb.png
    24661a75571e3868bb7bf7e01ffe6e49.png
    缓存策略    
     NSURLRequestcachePolicy属性可以设置缓存策略,这是一种内存缓存,非硬盘缓存  使用缓存的目的是为了使用的应用程序能更快速的响应用户输入,使程序高效的运行。
    有时候我们需要将远程web服务器获取的数据缓存起来,减少对同一个url多次请求  cachePolicy支持的缓存策略包括:
       NSURLRequestUseProtocolCachePolicy 默认的缓存策略,要在协议的实现方法中指 定缓存逻辑    
       NSURLRequestReloadIgnoringCacheData 忽略缓存从原始地址下载
       NSURLRequestReturnCacheDataElseLoad 没有缓存时从原始地址下载    
       NSURLRequestReturnCacheDataDontLoad 只使用缓存,如果不存在缓存,请求失 败,适用于没有建立网络连接离线模式
       NSURLRequestReloadIgnoringLocalAndRemoteCacheData 忽略本地和远程的缓存数 据,直接从原始地址下载,与NSURLRequestReloadIgnoringCacheData类似    
       NSURLRequestReloadRevalidatingCacheData 验证本地数据与远程数据是否相同, 如果不同则下载远程数据,否则使用本地数据
    897b223fe1bf63457e55de6d396ff5bb.png
    本地数据存储的原则    
     与安全相关的用户信息  用户密码
     银行账号
     原则:
     任何应用程序都不能在本地直接存储与安全相关的用户信息
     任何应用程序在于服务器传递数据时,都不能直接传输与安 全相关的用户信息    
    897b223fe1bf63457e55de6d396ff5bb.png
    数据安全——MD5    
     Message Digest Algorithm MD5(中文名为消息摘要算法第五版)为 计算机安全领域广泛使用的一种散列函数,用以提供消息的完整性保 护。该算法的文件号为RFC 1321
     MD5用于确保信息传输完整一致。是计算机广泛使用的杂凑算法之一 (又译摘要算法、哈希算法),主流编程语言普遍已有MD5实现
     MD5的典型应用是对一段字节串产生指纹,以防止被“篡改”。例如, 可以对一个readme.txt生成一个MD5的值并记录在案,如果其他人修 改了文件中的任何内容,对该文件重新计算的MD5值会发生变化
     MD5还广泛用于操作系统的登录认证上,如Unix、各类BSD系统登录 密码、数字签名等诸多方面    

    //转载请注明出处--本文永久链接:http://www.cnblogs.com/ChenYilong/p/3495623.html
    897b223fe1bf63457e55de6d396ff5bb.png
    SHA-1简介    
       SHA (Secure Hash Algorithm,译作安全散列算法) 由美国国家安全局 (NSA) 设计,美国国家标准与技术研究院(NIST) 发布的一系列密码散 列函数
       SHA-1, SHA-224, SHA-256, SHA-384  SHA-512都被需要安全散列算 法的美国联邦政府所应用,他们也使用其他的密码算法和协定来保护 敏感的未保密资料
     SHA-1散列函数用可能会被用来实现个人电脑上的数字版权的管理    
    897b223fe1bf63457e55de6d396ff5bb.png
    数据安全演练及单元测试初体验    
     http://www.cmd5.com    
    897b223fe1bf63457e55de6d396ff5bb.png
    本节知识点回顾    
       Get & Post请求    
       网络访问的四个步骤    
     地址、请求、连接、处理结果    
       iOS网络处理常用类    
     NSURL(地址)      NSRequest[GET] & NSMutableURLRequest[POST](请求)      NSConnection(连接)    
       实现NSURLConnectionDataDelegate代理方法可以接收服务器响应数据(处理 结果)    
       使用代理方法存在的问题    
       使用NSConnection的同步和异步静态方法可以直接调用请求    
       通过缓存策略可以提高网络访问效率,缓存策略是内存缓存    
    897b223fe1bf63457e55de6d396ff5bb.png

    https://www.evernote.com/shard/s227/sh/11d2401d-2c6e-40e6-bb8f-720b6c01c831/29b6cc0b5fb5b0305fde5d44f620ef07

    本系列所有开发文档翻译链接地址:iOS7开发-Apple苹果iPhone开发Xcode官方文档翻译PDF下载地址


    作者:
    出处:http://www.cnblogs.com/ChenYilong/(点击RSS订阅)
    本文版权归作者和博客园共有,欢迎转载,
    但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

  • 相关阅读:
    专有宿主机如何实现“资源池”管理——集群管理能力升级
    像Google一样构建机器学习系统3
    利用阿里云容器服务打通TensorFlow持续训练链路
    阿里云积极落实等级保护制度,政务云全国首个通过等保2.0合规评测
    Facebook F8|闲鱼高级技术专家参会分享
    UI2CODE智能生成代码——组件识别篇
    基于TableStore的海量气象格点数据解决方案实战
    药品监管系统架构揭秘:海量溯源数据存储与查询
    对比MySQL,一文看透HBase的能力及使用场景
    bzoj1003 [ZJOI2006]物流运输
  • 原文地址:https://www.cnblogs.com/ChenYilong/p/3495623.html
Copyright © 2011-2022 走看看