ios開發日記11-http和socket,ios11-httpsocket

來源:互聯網
上載者:User

ios開發日記11-http和socket,ios11-httpsocket

今天博主有一個網路開發的需求,遇到了一些困痛點,在此和大家分享,希望能夠共同進步.

今天和大家分享一下http和socket的區別,具體的各種網路通訊協定,請各位看官自行百度

1.http串連:http串連就是所謂的短串連,即用戶端向伺服器端發送一次請求,伺服器端響應後串連即會斷掉

簡單說,你瀏覽的網頁(網址以http://開頭)都是http協議傳輸到你的瀏覽器的, 而http是基於socket之上的。socket是一套完成tcp,udp協議的介面。

  HTTP協議:簡易物件存取通訊協定 (SOAP),對應於應用程式層 ,HTTP協議是基於TCP串連的

  tcp協議: 對應於傳輸層

  ip協議: 對應於網路層

  TCP/IP是傳輸層協議,主要解決資料如何在網路中傳輸;而HTTP是應用程式層協議,主要解決如何封裝資料。

  Socket是對TCP/IP協議的封裝,Socket本身並不是協議,而是一個調用介面(API),通過Socket,我們才能使用TCP/IP協議

2.socket串連:socket串連就是所謂的長串連,理論上用戶端和伺服器端一旦建立起串連將不會主動斷掉;但是由於各種環境因素可能會是串連斷開,比如說:伺服器端或用戶端主機down了,網路故障,或者兩者之間長時間沒有資料轉送,網路防火牆可能會斷開該串連以釋放網路資源。所以當一個socket串連中沒有資料的傳輸,那麼為了維持串連需要發送心跳訊息~~具體心跳訊息格式是開發人員自己定義的

我們已經知道網路中的進程是通過socket來通訊的,那什麼是socket呢?socket起源於Unix,而Unix/Linux基本哲學之一就是“一切皆檔案”,都可以用“開啟open –> 讀寫write/read –> 關閉close”模式來操作。我的理解就是Socket就是該模式的一個實現,socket即是一種特殊的檔案。

3.一些socket函數就是對其進行的操作(讀/寫IO、開啟、關閉),我們在傳輸資料時,可以只使用(傳輸層)TCP/IP協議,但是那樣的話,如果沒有應用程式層,便無法識別資料內容,如果想要使傳輸的資料有意義,則必須使用到應用程式層協議,應用程式層協議有很多,比如HTTP、FTP、TELNET等,也可以自己定義應用程式層協議。WEB使用HTTP協議作應用程式層協議,以封裝HTTP文本資訊,然後使用TCP/IP做傳輸層協議將它發到網路上。

  1)Socket是一個針對TCP和UDP編程的介面,你可以藉助它建立TCP串連等等。而TCP和UDP協議屬於傳輸層。

  而http是個應用程式層的協議,它實際上也建立在TCP協議之上。

  (HTTP是轎車,提供了封裝或者顯示資料的具體形式;Socket是發動機,提供了網路通訊的能力。)

  2)Socket是對TCP/IP協議的封裝,Socket本身並不是協議,而是一個調用介面(API),通過Socket,我們才能使用TCP/IP協議。Socket的出現只是使得程式員更方便地使用TCP/IP協議棧而已,是對TCP/IP協議的抽象,從而形成了我們知道的一些最基本的函數介面。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.