需要詳細(xì)的問題

http://www.2cto.com/kf/201604/498022.html

TCP (Transmission Control Protocol)和UDP(User Datagram Protocol)協(xié)議屬于

傳輸層協(xié)議。

UDP(User Datagram protocol)用戶數(shù)據(jù)報(bào)協(xié)議,它只提供應(yīng)用進(jìn)程尋址和簡(jiǎn)單的差錯(cuò)檢測(cè),并不提供其他功能。

TCP(Transmission Control Protocol,傳輸控制協(xié)議)是面向連接的協(xié)議,也就是說,在收發(fā)數(shù)據(jù)前,必須和對(duì)方建立可靠的連接。一個(gè)TCP連接必須要經(jīng)過三次“對(duì)話”才能建立起來,其中的過程非常復(fù)雜,只簡(jiǎn)單的描述下這三次對(duì)話的簡(jiǎn)單過程:主機(jī)A向主機(jī)B發(fā)出連接請(qǐng)求數(shù)據(jù)包:“我想給你發(fā)數(shù)據(jù),可以嗎?”,這是第一次對(duì)話;主機(jī)B向主機(jī)A發(fā)送同意連接和要求同步(同步就是兩臺(tái)主機(jī)一個(gè)在發(fā)送,一個(gè)在接收,協(xié)調(diào)工作)的數(shù)據(jù)包:“可以,你什么時(shí)候發(fā)?”,這是第二次對(duì)話;主機(jī)A再發(fā)出一個(gè)數(shù)據(jù)包確認(rèn)主機(jī)B的要求同步:“我現(xiàn)在就發(fā),你接著吧!”,這是第三次對(duì)話。三次“對(duì)話”的目的是使數(shù)據(jù)包的發(fā)送和接收同步,經(jīng)過三次“對(duì)話”之后,主機(jī)A才向主機(jī)B正式發(fā)送數(shù)據(jù)。

1.上傳數(shù)據(jù)是怎么和后臺(tái)服務(wù)器交互的;

后臺(tái)和前端的交互手段是通過網(wǎng)絡(luò)接口來實(shí)現(xiàn)的.上傳數(shù)據(jù)通過http請(qǐng)求上傳,iOS9之后是https請(qǐng)求,需要把數(shù)據(jù)轉(zhuǎn)換成data類型,然后拼接到POST請(qǐng)求體(body)中,通過請(qǐng)求數(shù)據(jù)一起發(fā)送到服務(wù)器上。

對(duì)于服務(wù)器端的返回的格式,一般使用json格式返回。它有優(yōu)勢(shì),傳遞數(shù)據(jù)相對(duì)小,ios客戶端也容易解析。至于服務(wù)器端你可以有多種選擇,asp.net/" target="_blank">asp.net,java,php均可。

二、兩種請(qǐng)求方式的區(qū)別:

1、GET請(qǐng)求,請(qǐng)求的數(shù)據(jù)會(huì)附加在URL之后,以?分割URL和傳輸數(shù)據(jù),多個(gè)參數(shù)用&連接。URL的編碼格式采用的是ASCII編碼,而不是uniclde,即是說所有的非ASCII字符都要編碼之后再傳輸。

POST請(qǐng)求:POST請(qǐng)求會(huì)把請(qǐng)求的數(shù)據(jù)放置在HTTP請(qǐng)求包的包體中。上面的item=bandsaw就是實(shí)際的傳輸數(shù)據(jù)。

因此,GET請(qǐng)求的數(shù)據(jù)會(huì)暴露在地址欄中,而POST請(qǐng)求則不會(huì)。

2、傳輸數(shù)據(jù)的大小

在HTTP規(guī)范中,沒有對(duì)URL的長(zhǎng)度和傳輸?shù)臄?shù)據(jù)大小進(jìn)行限制。但是在實(shí)際開發(fā)過程中,對(duì)于GET,特定的瀏覽器和服務(wù)器對(duì)URL的長(zhǎng)度有限制。因此,在使用GET請(qǐng)求時(shí),傳輸數(shù)據(jù)會(huì)受到URL長(zhǎng)度的限制。

對(duì)于POST,由于不是URL傳值,理論上是不會(huì)受限制的,但是實(shí)際上各個(gè)服務(wù)器會(huì)規(guī)定對(duì)POST提交數(shù)據(jù)大小進(jìn)行限制,Apache、IIS都有各自的配置。

3、安全性

POST的安全性比GET的高。這里的安全是指真正的安全,而不同于上面GET提到的安全方法中的安全,上面提到的安全僅僅是不修改服務(wù)器的數(shù)據(jù)。比如,在進(jìn)行登錄操作,通過GET請(qǐng)求,用戶名和密碼都會(huì)暴露再URL上,因?yàn)榈卿涰?yè)面有可能被瀏覽器緩存以及其他人查看瀏覽器的歷史記錄的原因,此時(shí)的用戶名和密碼就很容易被他人拿到了。除此之外,GET請(qǐng)求提交的數(shù)據(jù)還可能會(huì)造成Cross-site request frogery攻擊。

9、解釋HTTP中Get和Post,它們有什么區(qū)別,哪個(gè)使用時(shí)更加安全?

Http定義了與服務(wù)器交互的不同方法,最基本的方法有4種,分別是GET,POST,PUT,DELETE。URL全稱是資源描述符,我們可以這樣認(rèn)為:一個(gè)URL地址,它用于描述一個(gè)網(wǎng)絡(luò)上的資源,而HTTP中的GET,POST,PUT,DELETE就對(duì)應(yīng)著對(duì)這個(gè)資源的查,改,增,刪4個(gè)操作。到這里,大家應(yīng)該有個(gè)大概的了解了,GET一般用于獲取/查詢資源信息,而POST一般用于更新資源信息。

一、原理區(qū)別

1.根據(jù)HTTP規(guī)范,GET用于信息獲取,而且應(yīng)該是安全的和冪等的。

2.根據(jù)HTTP規(guī)范,POST表示可能修改變服務(wù)器上的資源的請(qǐng)求。

淺談HTTP中GET、POST用法以及它們的區(qū)別

http://blog.csdn.net/redoq/article/details/52807670

HTTP 協(xié)議中GET和POST到底有哪些區(qū)別

http://blog.csdn.net/wangzhilife/article/details/12440089

post 相比get 有很多優(yōu)點(diǎn),為什么現(xiàn)在的HTTP通信中大多數(shù)請(qǐng)求還是使用get?

https://www.zhihu.com/question/31640769

淺談HTTP中Get與Post的區(qū)別

http://blog.csdn.net/heise668/article/details/51725228

iOS網(wǎng)絡(luò)HTTP、TCP、UDP、Socket 知識(shí)總結(jié)

http://www.cnblogs.com/dongliu/p/5455331.html

******如何處理多個(gè)網(wǎng)絡(luò)請(qǐng)求并發(fā)的情況******

http://www.cnblogs.com/yanhuaxuanlan/p/4683557.html

iOS開發(fā)系列--并行開發(fā)(處理多個(gè)網(wǎng)絡(luò)請(qǐng)求并發(fā)的情況)

http://blog.csdn.net/michaelkiven/article/details/49148821

iOS 多個(gè)網(wǎng)絡(luò)請(qǐng)求并行/并發(fā)處理

http://blog.csdn.net/dfdfdfdfdfw/article/details/50856336

34. UDP和TCP的區(qū)別是什么?

TCP - UDP

1.基于連接與無(wú)連接;

2.對(duì)系統(tǒng)資源的要求(TCP較多,UDP少);

3.UDP程序結(jié)構(gòu)較簡(jiǎn)單;

4.流模式與數(shù)據(jù)報(bào)模式 ;

5.TCP保證數(shù)據(jù)正確性,UDP可能丟包,TCP保證數(shù)據(jù)順序,UDP不保證

TCP:面向連接、傳輸可靠(保證數(shù)據(jù)正確性,保證數(shù)據(jù)順序)、用于傳輸大量數(shù)據(jù)(流模式)、速度慢,建立連接需要開銷較多(時(shí)間,系統(tǒng)資源)。

UDP:面向非連接、傳輸不可靠、用于傳輸少量數(shù)據(jù)(數(shù)據(jù)包模式)、速度快。

TCP協(xié)議與UDP協(xié)議的區(qū)別

http://www.cnblogs.com/bizhu/archive/2012/05/12/2497493.html

TCP與UDP的區(qū)別

http://blog.csdn.net/yipiankongbai/article/details/24435977

TCP面向連接、傳輸可靠(保證數(shù)據(jù)正確性,保證數(shù)據(jù)順序)、用于傳輸大量數(shù)據(jù)(流模式)、速度慢,建立連接需要開銷較多(時(shí)間,系統(tǒng)資源)。

UDP面向非連接、傳輸不可靠、用于傳輸少量數(shù)據(jù)(數(shù)據(jù)包模式)、速度快。

35. TCP/IP建立連接的過程?

- 在TCP/IP 協(xié)議中,TCP協(xié)議提供可靠的連接服務(wù),采用三次握手建立連接;

- 第一次握手:建立連接時(shí),客戶端發(fā)送連接請(qǐng)求到服務(wù)器,并進(jìn)入SYN_SEND狀態(tài),等待服務(wù)器確認(rèn);

- 第二次握手:服務(wù)器收到客戶端連接請(qǐng)求,向客戶端發(fā)送允許連接應(yīng)答,

此時(shí)服務(wù)器進(jìn)入SYN_RECV狀態(tài);

- 第三次握手:客戶端收到服務(wù)器的允許連接應(yīng)答,向服務(wù)器發(fā)送確認(rèn),客戶端和服務(wù)器進(jìn)入通信狀態(tài),

完成三次握手。

(所謂的三次握手,就是要有三次連接信息的發(fā)送、接收過程。

TCP連的建立需要進(jìn)行三次連接信息的發(fā)送、接收。)

******APP內(nèi)部下載和離線下載的實(shí)現(xiàn)(像迅雷一樣可以離線下載)******

內(nèi)部下載: 1. 創(chuàng)建NSURLSession 并 根據(jù)鏈接創(chuàng)建一個(gè)NSURLRequest

2. 開始下載

3. 在代理中接受數(shù)據(jù)并根據(jù)路徑寫入到文件夾下

使用NSURLSession

http://www.itdecent.cn/p/fafc67475c73

開發(fā)只懂 AFN ?搞定 NSURLSession 才是硬道理

http://www.itdecent.cn/p/b0ddadd34037

iOS網(wǎng)絡(luò)1——NSURLConnection使用詳解

http://www.cnblogs.com/mddblog/p/5134783.html

iOS網(wǎng)絡(luò)2——NSURLSession使用詳解

http://www.cnblogs.com/mddblog/p/5215453.html

iOS網(wǎng)絡(luò)3—UIWebView與WKWebView使用詳解

http://www.cnblogs.com/mddblog/p/5281748.html

iOS網(wǎng)絡(luò)4——Reachability檢測(cè)網(wǎng)絡(luò)狀態(tài)

http://www.cnblogs.com/mddblog/p/5304346.html

3、使用過哪些網(wǎng)絡(luò)請(qǐng)求方式?用過哪些第三方框架,有哪些區(qū)別?

http協(xié)議申明了客戶端與服務(wù)端交互的方式,即請(qǐng)求方式:

get、post、put、delete

這四種方式可以對(duì)網(wǎng)絡(luò)資源(url描述的內(nèi)容)進(jìn)行:查、改、增、刪

CLLocationManager實(shí)現(xiàn)定位,查詢并實(shí)時(shí)顯示周邊商戶;

常用的是下面兩種:

1:get方法:下行/從服務(wù)端獲得數(shù)據(jù)

(1)get請(qǐng)求一般只是從服務(wù)器獲得數(shù)據(jù),請(qǐng)求時(shí)一般會(huì)提交服務(wù)器一些請(qǐng)求參數(shù),附加在url上的,參數(shù)之間以&分割。

(2)url中英文和數(shù)字原樣識(shí)別,而中文或者一些其他字符需要編碼。

(3)get請(qǐng)求提交的數(shù)據(jù)一般放在http協(xié)議的頭header中

2:post方法:上傳/上傳數(shù)據(jù)改變服務(wù)端內(nèi)容

(1)post請(qǐng)求多用于給服務(wù)器提交數(shù)據(jù)。

(2)post請(qǐng)求提交的數(shù)據(jù)一般放在http的主體數(shù)據(jù)包body中

用過的第三發(fā)框架有3種,ASIHttpRequest,AFNetWorking,MKNetWork.

三種的區(qū)別:ASIHttpRequest比較臃腫,MKNetWork和AFNektwork感覺比較輕量級(jí),本人推薦MKNetWork,比較簡(jiǎn)單


NSCache緩存類的詳解

http://blog.csdn.net/u013087513/article/details/49386707

http://www.itdecent.cn/p/47400383dfe0

http://www.itdecent.cn/p/5e69e211b161

http://blog.csdn.net/u010165653/article/details/46472487

http://nshipster.cn/nscache/

iOS網(wǎng)絡(luò)-優(yōu)化網(wǎng)絡(luò)請(qǐng)求性能

http://www.itdecent.cn/p/3a2fb50961af

http://www.itdecent.cn/p/f842286e664d

網(wǎng)絡(luò)請(qǐng)求和性能優(yōu)化

http://www.itdecent.cn/p/ab75b24a11e2

在網(wǎng)絡(luò)請(qǐng)求中如何提高性能

在網(wǎng)絡(luò)請(qǐng)求中如何保證安全性

iOS 在數(shù)據(jù)傳輸過程中有數(shù)據(jù)泄露的可能,客戶端在進(jìn)行網(wǎng)絡(luò)請(qǐng)求時(shí)一般都采用加密的方式來保證數(shù)據(jù)的安全性,在iOS9以后,蘋果為了保護(hù)數(shù)據(jù)的安全性,使用了Https協(xié)議。

NS_CLASS_AVAILABLE(NSURLSESSION_AVAILABLE, 7_0)

@interface NSURLSession : NSObject

關(guān)于iOS socket都在這里了

http://www.itdecent.cn/p/3e4f3de18e3b

Socket使用大全

http://blog.csdn.net/ch_soft/article/details/7369705/

iOS開發(fā)網(wǎng)絡(luò)篇—Socket編程

http://www.cnblogs.com/hissia/p/5687769.html

ios socket第三方框架 AsyncSocket使用簡(jiǎn)介

http://blog.csdn.net/wlm0813/article/details/51255097

學(xué)習(xí)使用AsyncSocket 進(jìn)行iOS socket編程

http://www.itdecent.cn/p/eb9505a4e3b8

iOS應(yīng)用中使用AsyncSocket庫(kù)處理Socket通信的用法講解

http://www.jb51.net/article/83941.htm

《ios開發(fā)》之CocoaAsyncSocket使用

http://www.itdecent.cn/p/321bc95d077f

******socket是什么?******

(1)socket是一套完成tcp,udp協(xié)議的接口。

HTTP協(xié)議:簡(jiǎn)單對(duì)象訪問協(xié)議,對(duì)應(yīng)于應(yīng)用層,HTTP協(xié)議是基于TCP連接的

tcp協(xié)議: 對(duì)應(yīng)于傳輸層

ip協(xié)議: 對(duì)應(yīng)于網(wǎng)絡(luò)層

TCP/IP是傳輸層協(xié)議,主要解決數(shù)據(jù)如何在網(wǎng)絡(luò)中傳輸;而HTTP是應(yīng)用層協(xié)議,主要解決如何包裝數(shù)據(jù)。

Socket是對(duì)TCP/IP協(xié)議的封裝,Socket本身并不是協(xié)議,而是一個(gè)調(diào)用接口(API),通過Socket,我們才能使用TCP/IP協(xié)議。Socket的出現(xiàn)只是使得程序員更方便地使用TCP/IP協(xié)議棧而已,是對(duì)TCP/IP協(xié)議的抽象,從而形成了我們知道的一些最基本的函數(shù)接口。

http連接:http連接就是所謂的短連接,即客戶端向服務(wù)器端發(fā)送一次請(qǐng)求,服務(wù)器端響應(yīng)后連接即會(huì)斷掉;

socket連接:socket連接就是所謂的長(zhǎng)連接,理論上客戶端和服務(wù)器端一旦建立起連接將不會(huì)主動(dòng)斷掉;但是由于各種環(huán)境因素可能會(huì)是連接斷開,比如說:服務(wù)器端或客戶端主機(jī)down了,網(wǎng)絡(luò)故障,或者兩者之間長(zhǎng)時(shí)間沒有數(shù)據(jù)傳輸,網(wǎng)絡(luò)防火墻可能會(huì)斷開該連接以釋放網(wǎng)絡(luò)資源。

(2)建立Socket連接至少需要一對(duì)套接字,套接字簡(jiǎn)單來說就是通信的兩方的一種約定,用套接字中的相關(guān)函數(shù)來完成通信過程。其中一個(gè)運(yùn)行于客戶端,稱為ClientSocket ,另一個(gè)運(yùn)行于服務(wù)器端,稱為ServerSocket 。

套接字之間的連接過程分為三個(gè)步驟:服務(wù)器監(jiān)聽,客戶端請(qǐng)求,連接確認(rèn)。

1。服務(wù)器監(jiān)聽:服務(wù)器端套接字并不定位具體的客戶端套接字,而是處于等待連接的狀態(tài),實(shí)時(shí)監(jiān)控網(wǎng)絡(luò)狀態(tài),等待客戶端的連接請(qǐng)求。

2??蛻舳苏?qǐng)求:指客戶端的套接字提出連接請(qǐng)求,要連接的目標(biāo)是服務(wù)器端的套接字。為此,客戶端的套接字必須首先描述它要連接的服務(wù)器的套接字,指出服務(wù)器端套接字的地址和端口號(hào),然后就向服務(wù)器端套接字提出連接請(qǐng)求。3。連接確認(rèn):當(dāng)服務(wù)器端套接字監(jiān)聽到或者說接收到客戶端套接字的連接請(qǐng)求時(shí),就響應(yīng)客戶端套接字的請(qǐng)求,建立一個(gè)新的線程,把服務(wù)器端套接字的描述發(fā)給客戶端,一旦客戶端確認(rèn)了此描述,雙方就正式建立連接。而服務(wù)器端套接字繼續(xù)處于監(jiān)聽狀態(tài),繼續(xù)接收其他客戶端套接字的連接請(qǐng)求。

******網(wǎng)絡(luò)通信用過哪些方式(100%的人說了AFNetworking...)如何處理多個(gè)網(wǎng)絡(luò)請(qǐng)求并發(fā)的情況******

1)、直接使用socket的方式

2)、AFNetworking

使用多線程中的并發(fā)隊(duì)列去處理網(wǎng)絡(luò)的并發(fā)請(qǐng)求

http與https的區(qū)別,https的好處有哪些?

http://www.mahaixiang.cn/internet/1233.html

HTTPS和HTTP的區(qū)別是什么?

https://www.wosign.com/faq/faq2016-0301-02.htm

https協(xié)議需要到ca申請(qǐng)證書,一般免費(fèi)證書很少,需要交費(fèi)。

http是超文本傳輸協(xié)議,信息是明文傳輸,https 則是具有安全性的ssl加密傳輸協(xié)議

http和https使用的是完全不同的連接方式用的端口也不一樣,前者是80,后者是443。

http的連接很簡(jiǎn)單,是無(wú)狀態(tài)的。

HTTPS協(xié)議是由SSL+HTTP協(xié)議構(gòu)建的可進(jìn)行加密傳輸、身份認(rèn)證的網(wǎng)絡(luò)協(xié)議、要比http協(xié)議安全。

HTTPS對(duì)比HTTP可以在很大程度上提供安全的DNS基礎(chǔ)設(shè)施

HTTPS優(yōu)缺點(diǎn)、原理解析:我們的網(wǎng)站該不該做HTTPS

http://www.chinaz.com/web/2017/0224/663236.shtml

為什么更安全的 HTTPS 協(xié)議沒有在互聯(lián)網(wǎng)上全面采用?

https://www.zhihu.com/question/19580839

https://www.zhihu.com/question/25119364

與HTTP有什么區(qū)別?HTTPS的七個(gè)誤解

http://www.chinaz.com/web/2015/0320/391752.shtml

YYModel:

http://blog.csdn.net/u012946824/article/details/51788527

線程:

http://blog.csdn.net/u013488229/article/details/48165569

http://www.cnblogs.com/apem/p/4340484.html


刨根問底Objective-C Runtime

http://www.cocoachina.com/ios/20141224/10740.html

http://www.cnblogs.com/yswdarren/p/3619303.html


自動(dòng)化編譯打包:

http://www.itdecent.cn/p/bd4c22952e01

http://www.cocoachina.com/ios/20160302/15501.html

http://www.itdecent.cn/p/1229476fbce4

http://www.cnblogs.com/itlover2013/p/5614195.html? 坑

多年iOS開發(fā)經(jīng)驗(yàn)總結(jié)

http://www.itdecent.cn/p/1ff9e44ccc78

http://www.itdecent.cn/p/9fcd37c0ea05

iOS Crash 殺手排名

https://github.com/guoshimeihua/RuntimeDemo

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容