OC笔记 - POST、GET请求、数据加密(2015.4.25)

本文详细介绍了iOS中GET和POST请求的区别,包括数据传输的安全性和效率。同时,讲解了网络请求的步骤,特别是使用NSURLConnection发送网络请求的同步和异步方法。此外,还探讨了二进制数据流在网络请求过程中的作用,以及MD5加密在保证数据完整性和安全性方面的应用。文中还给出了MD5加密和加盐的方法,以增强密码安全性。
摘要由CSDN通过智能技术生成

1.GET & POST

GET和POST是两种最常用的与服务器进行交互的HTTP方法

 

GET

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

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

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

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

 

POST

POST的语义是向指定URL的资源添加数据

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

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

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

 

POST请求会向服务器发送数据体,因此在刷新页面时会出现提示窗口

而GET请求不会向服务器发送数据体,因此没有提示

从请求的本质而言,GET请求要比POST请求更安全,效率也会更高

 

利用Firebug可轻松查看Post请求的内容

 

2.iOS网络发送网络请求的步骤

(1)实例化URL(网络资源)

(2)根据URL建立URLRequest(网络请求)

默认为GET请求

对于POST请求,需要创建请求的数据体

(3)利用URLConnection发送网络请求(建立连接)

(4)获得结果

 

NSURLConnection提供了两个静态方法可以直接以同步或异步的方式向服务器发送网络请求

同步请求:

sendSynchronousRequest:returningResponse:error:

异步请求:

sendAsynchronousRequest:queue:completionHandler:

 

3.网络传输之二进制数据流

在网络请求过程中,接收数据的过程实际上是通过NSURLConnectionDataDelegate来实现的,常用代理方法包括:

服务器开始返回数据,准备工作(void)

connection:didReceiveResponse:

 

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

- (void)connection:didReceiveData:

 

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

(void)connectionDidFinishLoading:

 

网络连接错误

-(void)connection:didFailWithError:

 

4.数据加密——MD5

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

 

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

 

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

 

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

 

MD5特性:

不可逆

同样的数据加密结果是一样的?密码上的一个忌讳

加点”盐”私钥

MD5解密网站:http://www.cmd5.com

 

5. NSURLConnection-GET请求实现登录

// 1.设置请求路径

    NSString *urlStr = [NSString stringWithFormat:@"http://192.168.1.1:8080/MyServer/login?username=%@&pwd=%@", username, pwd];

   

    // 转码

   urlStr = [urlStr stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值