http和https
- URL全称是Uniform Resource Locator(统一资源定位符)通过1个URL,能找到互联网上唯一的1个资源
- URL就是资源的地址,位置,互联网上的每个资源都有一个唯一的URL
- URL的基本格式= 协议://主机地址/路径
- 协议:不同的协议,代表着不同的资源查找方式,资源传输方式{ftp://(文件传输协议), http://(超文本传输协议), https://(安全超文本传输协议), file:// (本地文件协议) }
- 主机地址:存放资源的主机的IP地址(地域)
- 路径:资源在主机的位置
HTTP协议, Hyper Transfer Protocol (超文本传输协议) 是用于万维网(WWW)服务器传送超文本到本地浏览器的传输协议,HTTP是一个应用层协议,由请求和响应构成,是一个标准的客户端服务器模型.
工作原理: HTTP协议采用请求/响应模型. 客户端向服务器发送一个请求报文,服务器以一个状态作为响应.
HTTPS: 安全超文本传输协议 它是一个安全通信通道,它基于HTTP开发,用于在客户计算机和服务器之间交换信息.它使用安全套接字层(SSL)进行信息交换,简单来说它是HTTP的安全版. HTTPS协议使用SSL在发送方和接受方通过交换共知的秘钥来实现.因此,传送的数据不容易被网络黑客截取和解密.
SSL是Netscape公司所提出的安全保密协议,在浏览器和web服务器之间构造安全通道来进行数据传输,SSL运行TCP/IP 层值上,应用层之下,为应用程序提供加密数据通道.
- 异同:
- https协议需要到ca申请证书,一般免费证书很少,需要交费
- http是超文本传输协议,信息是明文传输,https则是具有安全性的加密传输协议
- http和https是用的是完全不同的链接方式,用的端口也不一样,前者是后者是443
- http的链接很简单,是无状态的
- https是协议是由SSL + HTTP 协议构建的可进行加密传输,身份认证的网络协议 要比http安全
请求方式: GET 和 POST ;
连接方式:
- 同步连接:程序容易出现卡死现象
- 异步链接:等待数据返回
异步连接有两种实现方式:
- 设置代理,接收数据
- 实现block
- 注意
网络请求,允许 Http 请求
同步GET :
- 创建一个地址字符串,注意: 不要有空格
- 创建一个统一资源定位符(URL)
- 创建一个NSURLRequest,并配置缓存策略和超时时间
- 通过一个NSData对象获取网络请求的数据
同步POST:
- 创建一个地址字符串,注意: 不要有空格
- 创建一个统一资源定位符
- 使用NSMutableURLRequest. 因为之后要对request做更改
- 创建一个上传数据的字符串,并且转成NSData对象
- 设置请求方式 (setHTTPMethod)
- 设置上传的Data(setHTTPBody)
- 通过一个NSData对象获取网络请求的数据
POST和GET的区别:
- POST设置请求方式
- GET设置Body
同步GET和POST的缺点: 会造成程序的卡顿,所以在开发中不推荐使用
//get同步
- (
IBAction
)getT:(
id
)sender {
//
地址字符串
NSString
*urlString =
@"http://ipad-bjwb.bjd.com.cn/DigitalPublication/publish/Handler/APINewsList.ashx?date=20131129&startRecord=1&len=5&udid=1234567890&terminalType=Iphone&cid=213"
;
}
//post同步
- (
IBAction
)postT:(
id
)sender {
}
异步
#import
"ViewController.h"
@interface
ViewController
()<</span>NSURLConnectionDataDeleg ate>//遵循代理
@property ( nonatomic , strong ) NSMutableData *resultData;
@end
//get异步
- (
IBAction
)getY:(
id
)sender {
#pragma mark -----block
#pragma mark -----代理
}
//post异步
- (IBAction)postY:(id)sender {
#pragma mark ----block
#pragma mark ----代理
[
NSURLConnection
connectionWithRequest
:request
delegate
:
self
];
}
}
#pragma mark -----NSURLConnectionDataDeleg ate协议方法
//开始响应
- (
void
)connection:(
NSURLConnection
*)connection didReceiveResponse:(
NSURLResponse
*)response{
//
初始化保存结果的
data
self
.
resultData
= [
NSMutableData
data
];
}
// 接收到数据
// 这个方法会重复的执行 , 所以可能拿到一段一段的数据 . 这就是需要我们把这些数据拼接起来
- ( void )connection:( NSURLConnection *)connection didReceiveData:( NSData *)data{
//
为了防止
拿到的数据不全
,
所以把拿到的数据拼接到保存结果的
data
中
.
[
self
.
resultData
appendData
:data];
}
// 结束响应
- ( void )connectionDidFinishLoadi ng:(
NSURLConnection
*)connection{
//
NSDictionary
*dict = [
NSJSONSerialization
JSONObjectWithData
:
self
.
resultData
options
:(
NSJSONReadingAllowFragme nts
)
error
:
nil
];
NSLog
(
@"
异步代理
---> %@"
,dict);
//
更新数据源数组
//
刷新
UI
}
}
// 接收到数据
// 这个方法会重复的执行 , 所以可能拿到一段一段的数据 . 这就是需要我们把这些数据拼接起来
- ( void )connection:( NSURLConnection *)connection didReceiveData:( NSData *)data{
}
// 结束响应
- ( void )connectionDidFinishLoadi
}
@end
Policy n. 政策,方针;保险单
Interval n. 间隔;间距;
Synchronous adj. 同步的;同时的
Fragments n. 碎片(fragment的复数);片断;[计] 分段
Method n. 方法;条理
Operation n. 操作;经营;[外科] 手术;[数][计] 运算
Queue n. 队列;长队;辫子