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];