http
是基于 socket
之上的。socket
是一套完整的 tcp,udp
協議的接口。
-
HTTP協議
:簡單對象訪問協議,對應于應用層,HTTP
協議是基于TCP連接的。- tcp協議:對應于傳輸層。
- ip協議:對應于網絡層。
TCP/IP是傳輸層協議
,主要解決數據如何在網絡中傳輸,而HTTP協議是應用層協議,主要解決如何包裝數據。
Socket是對TCP/IP 協議的封裝
,它本身不是協議,而是一個調用接口,通過Socket
,我們才能使用TCP/IP協議
。
-
http連接
:就是所謂的短連接,即客戶端向服務器端發送一次請求,服務器端響應后連接即會斷掉。 - socket連接:就是所謂的長連接,理論上客戶端和服務器端一旦建立起連接將不會主動斷掉,但是由于各種環境因素可能會使連接斷開。
http
是客戶端用http
協議進行請求,發送請求時候需要封裝http
請求頭,并綁定請求的數據,服務器一般有web
服務器配合。http
請求方式為客戶端主動發起請求,服務器才能給響應,一次請求完畢后則斷開連接以節省資源。服務器不能主動給客戶端響應。iPhone
主要使用的類是NSUrlConnection
。socket
是客戶端跟服務器直接使用socket“套接字”
進行拼接,并沒有規定連接后斷開,所以客戶端和服務器可以保持連接,雙方都可以主動發送數據。一般在游戲開發或者股票開發這種即時性很強的并且保持發送數據量比較大的場合使用。主要類是CFSocketRef。
- UDP:是用戶數據報協議:主要用在實時性要求高以及對質量相對較弱的地方,但面對現在高質量的線路容易丟包。
- TCP:是傳輸控制協議,是面向連接的,,運行環境必然要求其可靠性不可丟失包有良好的擁塞控制機制。
更多:iOS面試題 答案合集