前言
簡(jiǎn)單介紹:
// OSI(開(kāi)放式系統(tǒng)互聯(lián)), 由ISO(國(guó)際化標(biāo)準(zhǔn)組織)制定
// 1. 應(yīng)用層
// 2. 表示層
// 3. 會(huì)話層
// 4. 傳輸層
// 5. 網(wǎng)絡(luò)層
// 6. 數(shù)據(jù)鏈接層
// 7. 物理層
// TCP/IP, 由美國(guó)國(guó)防部制定
// 1. 應(yīng)用層, HTTP, FTP, SMTP, DNS
// 2. 傳輸層, TCP, UDP
// 3. 網(wǎng)絡(luò)層, IP
// 4. 鏈路層, ARP, RARP
// HTTP(短連接)
// 1. 建立鏈接, 三次握手
// 2. 斷開(kāi)鏈接, 四次揮手
// 數(shù)據(jù)報(bào)文->數(shù)據(jù)包->數(shù)據(jù)幀->比特流(二進(jìn)制)-->比特流->數(shù)據(jù)幀->數(shù)據(jù)包->數(shù)據(jù)報(bào)文
// socket, "插口", "套接字", 長(zhǎng)連接, 存在于應(yīng)用層和傳輸層之間, 提供一種封裝, 方便進(jìn)行通信
UDP、TCP、socket區(qū)別
1. UDP
UDP是一種不可靠的網(wǎng)絡(luò)協(xié)議。(qq用的是這個(gè)協(xié)議)
UDP 是User Datagram Protocol的簡(jiǎn)稱, 中文名是用戶數(shù)據(jù)報(bào)協(xié)議,是 OSI 參考模型中一種無(wú)連接的傳輸層協(xié)議,提供面向事務(wù)的簡(jiǎn)單不可靠信息傳送服務(wù),IETF RFC 768是UDP的正式規(guī)范。
UDP是OSI參考模型中一種無(wú)連接的傳輸層協(xié)議,提供面向事務(wù)的簡(jiǎn)單不可靠信息傳送服務(wù)。UDP 協(xié)議基本上是IP協(xié)議與上層協(xié)議的接口。
UDP協(xié)議的全稱是用戶數(shù)據(jù)報(bào)協(xié)議,在網(wǎng)絡(luò)中它與TCP協(xié)議一樣用于處理
UDP協(xié)議的全稱是用戶數(shù)據(jù)報(bào)協(xié)議,在網(wǎng)絡(luò)中它與TCP協(xié)議一樣用于處理數(shù)據(jù)包,是一種無(wú)連接的協(xié)議。在OSI模型中,在第四層——傳輸層,處于IP協(xié)議的上一層。UDP有不提供數(shù)據(jù)包分組、組裝和不能對(duì)數(shù)據(jù)包進(jìn)行排序的缺點(diǎn),也就是說(shuō),當(dāng)報(bào)文發(fā)送之后,是無(wú)法得知其是否安全完整到達(dá)的。UDP用來(lái)支持那些需要在計(jì)算機(jī)之間傳輸數(shù)據(jù)的網(wǎng)絡(luò)應(yīng)用。包括網(wǎng)絡(luò)視頻會(huì)議系統(tǒng)在內(nèi)的眾多的客戶/服務(wù)器模式的網(wǎng)絡(luò)應(yīng)用都需要使用UDP協(xié)議。UDP協(xié)議從問(wèn)世至今已經(jīng)被使用了很多年,雖然其最初的光彩已經(jīng)被一些類似協(xié)議所掩蓋,但是即使是在今天UDP仍然不失為一項(xiàng)非常實(shí)用和可行的網(wǎng)絡(luò)傳輸層協(xié)議。
與所熟知的TCP(傳輸控制協(xié)議)協(xié)議一樣,UDP協(xié)議直接位于IP(網(wǎng)際協(xié)議)協(xié)議的頂層。根據(jù)OSI(開(kāi)放系統(tǒng)互連)參考模型,UDP和TCP都屬于傳輸層協(xié)議。
UDP協(xié)議的主要作用是將網(wǎng)絡(luò)數(shù)據(jù)流量壓縮成數(shù)據(jù)包的形式。一個(gè)典型的數(shù)據(jù)包就是一個(gè)二進(jìn)制數(shù)據(jù)的傳輸單位。每一個(gè)數(shù)據(jù)包的前8個(gè)字節(jié)用來(lái)包含報(bào)頭信息,剩余字節(jié)則用來(lái)包含具體的傳輸數(shù)據(jù)。(詳見(jiàn):http://baike.baidu.com/view/30509.htm)
2.TCP
TCP:Transmission Control Protocol 傳輸控制協(xié)議TCP是一種面向連接(連接導(dǎo)向)的、可靠的、基于字節(jié)流的運(yùn)輸層(Transport layer)通信協(xié)議,由IETF的RFC 793說(shuō)明(specified)。在簡(jiǎn)化的計(jì)算機(jī)網(wǎng)絡(luò)OSI模型中,它完成第四層傳輸層所指定的功能,UDP是同一層內(nèi)另一個(gè)重要的傳輸協(xié)議。
應(yīng)用層向TCP層發(fā)送用于網(wǎng)間傳輸?shù)?、?位字節(jié)表示的數(shù)據(jù)流,然后TCP把數(shù)據(jù)流分割成適當(dāng)長(zhǎng)度的報(bào)文段(通常受該計(jì)算機(jī)連接的網(wǎng)絡(luò)的數(shù)據(jù)鏈路層的最大傳送單元(MTU)的限制)。之后TCP把結(jié)果包傳給IP層,由它來(lái)通過(guò)網(wǎng)絡(luò)將包傳送給接收端實(shí)體的TCP層。TCP為了保證不發(fā)生丟包,就給每個(gè)字節(jié)一個(gè)序號(hào),同時(shí)序號(hào)也保證了傳送到接收端實(shí)體的包的按序接收。然后接收端實(shí)體對(duì)已成功收到的字節(jié)發(fā)回一個(gè)相應(yīng)的確認(rèn)(ACK);如果發(fā)送端實(shí)體在合理的往返時(shí)延(RTT)內(nèi)未收到確認(rèn),那么對(duì)應(yīng)的數(shù)據(jù)(假設(shè)丟失了)將會(huì)被重傳。TCP用一個(gè)校驗(yàn)和函數(shù)來(lái)檢驗(yàn)數(shù)據(jù)是否有錯(cuò)誤;在發(fā)送和接收時(shí)都要計(jì)算和校驗(yàn)。 (詳見(jiàn):http://baike.baidu.com/view/32754.htm)
3.socket
socket的英文原義是“孔”或“插座”
客戶軟件將插頭插到不同編號(hào)的插座,就可以得到不同的服務(wù)。
常用的Socket類型
有兩種:流式Socket(SOCK_STREAM)和數(shù)據(jù)報(bào)式Socket(SOCK_DGRAM)。流式是一種面向連接的Socket,針對(duì)于面向連接的TCP服務(wù)應(yīng)用;數(shù)據(jù)報(bào)式Socket是一種無(wú)連接的Socket,對(duì)應(yīng)于無(wú)連接的UDP服務(wù)應(yīng)用。(詳見(jiàn):http://baike.baidu.com/view/13870.htm)
http協(xié)議
說(shuō)明:apache tomcat服務(wù)器必須占用8080端口
一、URL
1.基本介紹
URL的全稱是Uniform Resource Locator(統(tǒng)一資源定位符)
通過(guò)1個(gè)URL,能找到互聯(lián)網(wǎng)上唯一的1個(gè)資源
URL就是資源的地址、位置,互聯(lián)網(wǎng)上的每個(gè)資源都有一個(gè)唯一的URL

2.URL中常見(jiàn)的協(xié)議
(1)HTTP
超文本傳輸協(xié)議,訪問(wèn)的是遠(yuǎn)程的網(wǎng)絡(luò)資源,格式是http://
http協(xié)議是在網(wǎng)絡(luò)開(kāi)發(fā)中最常用的協(xié)議
(2)file
訪問(wèn)的是本地計(jì)算機(jī)上的資源,格式是file://(不用加主機(jī)地址)
(3)mailto
訪問(wèn)的是電子郵件地址,格式是mailto:
(4)FTP
訪問(wèn)的是共享主機(jī)的文件資源,格式是ftp://
二、HTTP協(xié)議
1.HTTP協(xié)議簡(jiǎn)介
不管是移動(dòng)客戶端還是PC端,訪問(wèn)遠(yuǎn)程的網(wǎng)絡(luò)資源經(jīng)常使用HTTP協(xié)議
訪問(wèn)百度主頁(yè):http://www.baidu.com
獲得新浪的微博數(shù)據(jù)
獲得大眾點(diǎn)評(píng)的團(tuán)購(gòu)數(shù)據(jù)
2.HTTP協(xié)議的作用
HTTP的全稱是Hypertext Transfer Protocol,超文本傳輸協(xié)議
(1)規(guī)定客戶端和服務(wù)器之間的數(shù)據(jù)傳輸格式
(2)讓客戶端和服務(wù)器能有效地進(jìn)行數(shù)據(jù)溝通

3.為什么選擇使用HTTP?
(1)簡(jiǎn)單快速 ?因?yàn)镠TTP協(xié)議簡(jiǎn)單,所以HTTP服務(wù)器的程序規(guī)模小,因而通信速度很快
(2)靈活 ?HTTP允許傳輸任意類型的數(shù)據(jù)
(3)HTTP 0.9和1.0使用非持續(xù)連接 ?限制每次連接只處理一個(gè)請(qǐng)求,服務(wù)器對(duì)客戶端的請(qǐng)求做出響應(yīng)后,馬上斷開(kāi)連接,這種方式可以節(jié)省傳輸時(shí)間
4.HTTP的通信過(guò)程
要想使用HTTP協(xié)議向服務(wù)器索取數(shù)據(jù),得先了解HTTP通信的完整過(guò)程
完整的http通信可以分為2大步驟
(1)請(qǐng)求:客戶端向服務(wù)器索要數(shù)據(jù)
(2)響應(yīng):服務(wù)器返回客戶端相應(yīng)的數(shù)據(jù)

三、HTTP通信過(guò)程 - 請(qǐng)求和響應(yīng)
1.HTTP通信過(guò)程 - 請(qǐng)求
HTTP協(xié)議規(guī)定:1個(gè)完整的由客戶端發(fā)給服務(wù)器的HTTP請(qǐng)求中包含以下內(nèi)容
請(qǐng)求行:包含了請(qǐng)求方法、請(qǐng)求資源路徑、HTTP協(xié)議版本
GET /MJServer/resources/images/1.jpg HTTP/1.1
請(qǐng)求頭:包含了對(duì)客戶端的環(huán)境描述、客戶端請(qǐng)求的主機(jī)地址等信息
Host: 192.168.1.105:8080// 客戶端想訪問(wèn)的服務(wù)器主機(jī)地址
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9) Firefox/30.0// 客戶端的類型,客戶端的軟件環(huán)境
Accept: text/html, */*// 客戶端所能接收的數(shù)據(jù)類型
Accept-Language: zh-cn// 客戶端的語(yǔ)言環(huán)境
Accept-Encoding: gzip// 客戶端支持的數(shù)據(jù)壓縮格式
請(qǐng)求體:客戶端發(fā)給服務(wù)器的具體數(shù)據(jù),比如文件數(shù)據(jù)
2.HTTP通信過(guò)程 - 響應(yīng)
客戶端向服務(wù)器發(fā)送請(qǐng)求,服務(wù)器應(yīng)當(dāng)做出響應(yīng),即返回?cái)?shù)據(jù)給客戶端
HTTP協(xié)議規(guī)定:1個(gè)完整的HTTP響應(yīng)中包含以下內(nèi)容:
狀態(tài)行:包含了HTTP協(xié)議版本、狀態(tài)碼、狀態(tài)英文名稱
HTTP/1.1 200 OK
響應(yīng)頭:包含了對(duì)服務(wù)器的描述、對(duì)返回?cái)?shù)據(jù)的描述
Server: Apache-Coyote/1.1// 服務(wù)器的類型
Content-Type: image/jpeg// 返回?cái)?shù)據(jù)的類型
Content-Length: 56811// 返回?cái)?shù)據(jù)的長(zhǎng)度
Date: Mon, 23 Jun 2014 12:54:52 GMT// 響應(yīng)的時(shí)間
實(shí)體內(nèi)容:服務(wù)器返回給客戶端的具體數(shù)據(jù),比如文件數(shù)據(jù)

3.補(bǔ)充:推薦工具firebug-1.12.5-fx.xpi
蟲子的作用:攔截所有的http請(qǐng)求。
4.常見(jiàn)的響應(yīng)狀態(tài)碼

四、發(fā)送HTTP請(qǐng)求的方法
1.簡(jiǎn)單說(shuō)明
在HTTP/1.1協(xié)議中,定義了8種發(fā)送http請(qǐng)求的方法
GET、POST、OPTIONS、HEAD、PUT、DELETE、TRACE、CONNECT、PATCH
根據(jù)HTTP協(xié)議的設(shè)計(jì)初衷,不同的方法對(duì)資源有不同的操作方式
PUT :增
DELETE :刪
POST:改
GET:查
提示:最常用的是GET和POST(實(shí)際上GET和POST都能辦到增刪改查)
2.get和post請(qǐng)求
要想使用GET和POST請(qǐng)求跟服務(wù)器進(jìn)行交互,得先了解一個(gè)概念:參數(shù)就是傳遞給服務(wù)器的具體數(shù)據(jù),比如登錄時(shí)的帳號(hào)、密碼
GET和POST對(duì)比:GET和POST的主要區(qū)別表現(xiàn)在數(shù)據(jù)傳遞上
GET
在請(qǐng)求URL后面以?的形式跟上發(fā)給服務(wù)器的參數(shù),多個(gè)參數(shù)之間用&隔開(kāi),比如http://ww.test.com/login?username=123&pwd=234&type=JSON
注意:由于瀏覽器和服務(wù)器對(duì)URL長(zhǎng)度有限制,因此在URL后面附帶的參數(shù)是有限制的,通常不能超過(guò)1KB
POST
發(fā)給服務(wù)器的參數(shù)全部放在請(qǐng)求體中
理論上,POST傳遞的數(shù)據(jù)量沒(méi)有限制(具體還得看服務(wù)器的處理能力)
3.GET和POST的選擇
選擇GET和POST的建議
(1)如果要傳遞大量數(shù)據(jù),比如文件上傳,只能用POST請(qǐng)求
(2)GET的安全性比POST要差些,如果包含機(jī)密\敏感信息,建議用POST
(3)如果僅僅是索取數(shù)據(jù)(數(shù)據(jù)查詢),建議使用GET
(4)如果是增加、修改、刪除數(shù)據(jù),建議使用POST
4.iOS中發(fā)送HTTP請(qǐng)求的方案
在iOS中,常見(jiàn)的發(fā)送HTTP請(qǐng)求(GET和POST)的解決方案有
(1)蘋果原生(自帶)
NSURLConnection:用法簡(jiǎn)單,最古老最經(jīng)典最直接的一種方案
NSURLSession:iOS 7新出的技術(shù),功能比NSURLConnection更加強(qiáng)大
CFNetwork:NSURL*的底層,純C語(yǔ)言
(2)第三方框架
ASIHttpRequest:外號(hào)“HTTP終結(jié)者”,功能極其強(qiáng)大,可惜早已停止更新
AFNetworking:簡(jiǎn)單易用,提供了基本夠用的常用功能
建議:
為了提高開(kāi)發(fā)效率,企業(yè)開(kāi)發(fā)用的基本是第三方框架
5.ASI和AFN架構(gòu)對(duì)比

說(shuō)明:AFN基于NSURL,ASI基于CFHTTP,ASI的性能更好一些。但是ASI已經(jīng)沒(méi)有人維護(hù)了,所以一般用AFN。
GET請(qǐng)求和POST請(qǐng)求簡(jiǎn)單說(shuō)明
創(chuàng)建GET請(qǐng)求
//1.設(shè)置請(qǐng)求路徑
NSString *urlStr=[NSString stringWithFormat:@"http://192.168.1.53:8080/MJServer/login?username=%@&pwd=%@",self.username.text,self.pwd.text];
NSURL *url=[NSURL URLWithString:urlStr];
2.創(chuàng)建請(qǐng)求對(duì)象
NSURLRequest *request=[NSURLRequest requestWithURL:url];
3.發(fā)送請(qǐng)求
服務(wù)器:

創(chuàng)建POST請(qǐng)求
1.設(shè)置請(qǐng)求路徑
NSURL *URL=[NSURL URLWithString:@"http://192.168.1.53:8080/MJServer/login"];//不需要傳遞參數(shù)2.創(chuàng)建請(qǐng)求對(duì)象
NSMutableURLRequest *request=[NSMutableURLRequest requestWithURL:URL];//默認(rèn)為get請(qǐng)求request.timeoutInterval=5.0;//設(shè)置請(qǐng)求超時(shí)為5秒
request.HTTPMethod=@"POST";//設(shè)置請(qǐng)求方法
//設(shè)置請(qǐng)求體
NSString *param=[NSString stringWithFormat:@"username=%@&pwd=%@",self.username.text,self.pwd.text];
//把拼接后的字符串轉(zhuǎn)換為data,設(shè)置請(qǐng)求體
request.HTTPBody=[param dataUsingEncoding:NSUTF8StringEncoding];
//3.發(fā)送請(qǐng)求
服務(wù)器:

二、比較
建議:提交用戶的隱私數(shù)據(jù)一定要使用POST請(qǐng)求
相對(duì)POST請(qǐng)求而言,GET請(qǐng)求的所有參數(shù)都直接暴露在URL中,請(qǐng)求的URL一般會(huì)記錄在服務(wù)器的訪問(wèn)日志中,而服務(wù)器的訪問(wèn)日志是黑客攻擊的重點(diǎn)對(duì)象之一
用戶的隱私數(shù)據(jù)如登錄密碼,銀行賬號(hào)等。
三、使用
1.通過(guò)請(qǐng)求頭告訴服務(wù)器,客戶端的類型(可以通過(guò)修改,欺騙服務(wù)器)
1.設(shè)置請(qǐng)求路徑
NSURL *URL=[NSURL URLWithString:@"http://192.168.1.53:8080/MJServer/login"];//不需要傳遞參數(shù)2.創(chuàng)建請(qǐng)求對(duì)象
NSMutableURLRequest *request=[NSMutableURLRequest requestWithURL:URL];//默認(rèn)為get請(qǐng)求6request.timeoutInterval=5.0;//設(shè)置請(qǐng)求超時(shí)為5秒
request.HTTPMethod=@"POST";//設(shè)置請(qǐng)求方法
//設(shè)置請(qǐng)求體
NSString *param=[NSString stringWithFormat:@"username=%@&pwd=%@",self.username.text,self.pwd.text];
//把拼接后的字符串轉(zhuǎn)換為data,設(shè)置請(qǐng)求體
request.HTTPBody=[param dataUsingEncoding:NSUTF8StringEncoding];
//客戶端類型,只能寫英文
[request setValue:@"ios+android" forHTTPHeaderField:@"User-Agent"];
服務(wù)器:

2.加強(qiáng)對(duì)中文的處理
問(wèn)題:URL不允許寫中文
在GET請(qǐng)求中,相關(guān)代碼段打斷點(diǎn)以驗(yàn)證。
在字符串的拼接參數(shù)中,用戶名使用“文頂頂”.

轉(zhuǎn)換成URL之后整個(gè)變成了空值。

提示:URL里面不能包含中文。
解決:進(jìn)行轉(zhuǎn)碼
1.設(shè)置請(qǐng)求路徑
NSString *urlStr=[NSString stringWithFormat:@"http://192.168.1.53:8080/MJServer/login?username=%@&pwd=%@",self.username.text,self.pwd.text];
//轉(zhuǎn)碼
urlStr= [urlStr stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
NSURL *url=[NSURL URLWithString:urlStr];
2.創(chuàng)建請(qǐng)求對(duì)象
NSURLRequest *request=[NSURLRequest requestWithURL:url];
調(diào)試查看:

服務(wù)器:

說(shuō)明:使用NSURLSession發(fā)送GET和POST請(qǐng)求請(qǐng)參考最新博文:http://www.cnblogs.com/wendingding/p/5168772.html
socket原理
套接字(socket)概念
套接字(socket)是通信的基石,是支持TCP/IP協(xié)議的網(wǎng)絡(luò)通信的基本操作單元。它是網(wǎng)絡(luò)通信過(guò)程中端點(diǎn)的抽象表示,包含進(jìn)行網(wǎng)絡(luò)通信必須的五種信息:連接使用的協(xié)議,本地主機(jī)的IP地址,本地進(jìn)程的協(xié)議端口,遠(yuǎn)地主機(jī)的IP地址,遠(yuǎn)地進(jìn)程的協(xié)議端口。
應(yīng)用層通過(guò)傳輸層進(jìn)行數(shù)據(jù)通信時(shí),TCP會(huì)遇到同時(shí)為多個(gè)應(yīng)用程序進(jìn)程提供并發(fā)服務(wù)的問(wèn)題。多個(gè)TCP連接或多個(gè)應(yīng)用程序進(jìn)程可能需要通過(guò)同一個(gè)
TCP協(xié)議端口傳輸數(shù)據(jù)。為了區(qū)別不同的應(yīng)用程序進(jìn)程和連接,許多計(jì)算機(jī)操作系統(tǒng)為應(yīng)用程序與TCP/IP協(xié)議交互提供了套接字(Socket)接口。應(yīng)用層可以和傳輸層通過(guò)Socket接口,區(qū)分來(lái)自不同應(yīng)用程序進(jìn)程或網(wǎng)絡(luò)連接的通信,實(shí)現(xiàn)數(shù)據(jù)傳輸?shù)牟l(fā)服務(wù)。
建立socket連接
建立Socket連接至少需要一對(duì)套接字,其中一個(gè)運(yùn)行于客戶端,稱為ClientSocket,另一個(gè)運(yùn)行于服務(wù)器端,稱為ServerSocket。
套接字之間的連接過(guò)程分為三個(gè)步驟:服務(wù)器監(jiān)聽(tīng),客戶端請(qǐng)求,連接確認(rèn)。
服務(wù)器監(jiān)聽(tīng):服務(wù)器端套接字并不定位具體的客戶端套接字,而是處于等待連接的狀態(tài),實(shí)時(shí)監(jiān)控網(wǎng)絡(luò)狀態(tài),等待客戶端的連接請(qǐng)求。
客戶端請(qǐng)求:指客戶端的套接字提出連接請(qǐng)求,要連接的目標(biāo)是服務(wù)器端的套接字。為此,客戶端的套接字必須首先描述它要連接的服務(wù)器的套接字,指出服務(wù)器端套接字的地址和端口號(hào),然后就向服務(wù)器端套接字提出連接請(qǐng)求。
連接確認(rèn):當(dāng)服務(wù)器端套接字監(jiān)聽(tīng)到或者說(shuō)接收到客戶端套接字的連接請(qǐng)求時(shí),就響應(yīng)客戶端套接字的請(qǐng)求,建立一個(gè)新的線程,把服務(wù)器端套接字的描述發(fā)給客戶端,一旦客戶端確認(rèn)了此描述,雙方就正式建立連接。而服務(wù)器端套接字繼續(xù)處于監(jiān)聽(tīng)狀態(tài),繼續(xù)接收其他客戶端套接字的連接請(qǐng)求。
SOCKET連接與TCP連接
創(chuàng)建Socket連接時(shí),可以指定使用的傳輸層協(xié)議,Socket可以支持不同的傳輸層協(xié)議(TCP或UDP),當(dāng)使用TCP協(xié)議進(jìn)行連接時(shí),該Socket連接就是一個(gè)TCP連接。
3.4、Socket連接與HTTP連接
由于通常情況下Socket連接就是TCP連接,因此Socket連接一旦建立,通信雙方即可開(kāi)始相互發(fā)送數(shù)據(jù)內(nèi)容,直到雙方連接斷開(kāi)。但在實(shí)際網(wǎng)絡(luò)應(yīng)用中,客戶端到服務(wù)器之間的通信往往需要穿越多個(gè)中間節(jié)點(diǎn),例如路由器、網(wǎng)關(guān)、防火墻等,大部分防火墻默認(rèn)會(huì)關(guān)閉長(zhǎng)時(shí)間處于非活躍狀態(tài)的連接而導(dǎo)致Socket 連接斷連,因此需要通過(guò)輪詢告訴網(wǎng)絡(luò),該連接處于活躍狀態(tài)。
而HTTP連接使用的是“請(qǐng)求—響應(yīng)”的方式,不僅在請(qǐng)求時(shí)需要先建立連接,而且需要客戶端向服務(wù)器發(fā)出請(qǐng)求后,服務(wù)器端才能回復(fù)數(shù)據(jù)。
很多情況下,需要服務(wù)器端主動(dòng)向客戶端推送數(shù)據(jù),保持客戶端與服務(wù)器數(shù)據(jù)的實(shí)時(shí)與同步。此時(shí)若雙方建立的是Socket連接,服務(wù)器就可以直接將數(shù)據(jù)傳送給客戶端;若雙方建立的是HTTP連接,則服務(wù)器需要等到客戶端發(fā)送一次請(qǐng)求后才能將數(shù)據(jù)傳回給客戶端,因此,客戶端定時(shí)向服務(wù)器端發(fā)送連接請(qǐng)求,不僅可以保持在線,同時(shí)也是在“詢問(wèn)”服務(wù)器是否有新的數(shù)據(jù),如果有就將數(shù)據(jù)傳給客戶端。
https
關(guān)于安全等級(jí)更高的https協(xié)議這里我就不多說(shuō)了,附上兩個(gè)博客地址:
http://www.cocoachina.com/ios/20150702/12384.html
http://www.cnblogs.com/jys509/p/5001566.html
參考博客:
http://www.cnblogs.com/wendingding/p/3813706.html
http://www.cnblogs.com/wendingding/p/3813466.html
http://www.cocoachina.com/bbs/read.php?tid=116559
http://www.2cto.com/kf/201512/455635.html
http://www.mamicode.com/info-detail-877996.html
博主的微博、CocoaChina博客、CSDN博客同步更新,歡迎關(guān)注:
新浪微博:http://weibo.com/p/1005052308506177/home?from=page_100505_profile&wvr=6&mod=data&is_all=1#place
CocoaChina:http://blog.cocoachina.com/477998
CSDN:http://blog.csdn.net/czkyes