iOS開發HTTP協議相關知識總結,ios相關知識

來源:互聯網
上載者:User

iOS開發HTTP協議相關知識總結,ios相關知識
HTTP原理

  • HTTP請求的選擇
  • 怎麼發送HTTP請求
  • 1. 什麼是URL

      在介紹HTTP之前,我們對URL有一定的瞭解的,因為只有通過URL我們才能拿到網路上的資源。那麼究竟什麼是URL?

      URL(Uniform Resource Locator 統一資源定位器):URL其實就是資源在互連網上的地址、位置,互連網上的每一個資源都有一個唯一的URL,只有通過URL我們才能找到互連網上唯一的資源。

      URL的基本構成:協議://主機地址/路徑

      http://www.cnblogs.com/iOSClub/articles/5233432.html

      http://192.168.38.24/imgs/01.png

     

     

    協議:不同的協議決定了不同的資源尋找和傳輸方式

    主機地址:存放資源主機(伺服器)的IP地址

    路徑:資源在主機(伺服器)的具體位置

     

    2.URL中常見的幾種協議

      瞭解了URL是什麼,那麼URL中常用的HTTP協議都有哪些?

    注意:URL中不能出現空格以及中文等特殊符號.

    • URL中,所有的字元都必須是 ASCII 碼;
    • URL中不能出現中文和特殊符號(如空格); 

    所以,如果 URL 中出現了中文,需要添加百分比符號轉譯.

    urlString=[urlStringstringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

    3. 什麼是HTTP協議

      HTTP協議(HyperText Tranfer Protocol 超文字傳輸通訊協定 (HTTP)):HTTP規定用戶端和伺服器之間資料的傳輸方式。

      HTTP底層的原理:HTTP的底層就是通過socket建立串連通訊管道的,實現資料的傳輸。HTTP是一個TCP傳輸協議(方式),是一個可靠的安全的協議。

      HTTP協議是在網路開發中最常用的協議.不管是移動用戶端還是PC端,訪問網路資源經常使用HTTP協議.

     

    4.HTTP是做什麼的

    HTTP的作用可以用一句話概述:使用戶端和服務端的資料有效傳輸。

     

    5.為什麼要使用HTTP協議(HTTP協議的優點)

     

    6. HTPP協議的通訊過程介紹

    瞭解HTTP協議的簡介後,繼續瞭解HTTP協議的通訊過程,HTTP的通訊過程包含兩個方面:

     

     

    HTTP請求:用戶端想伺服器端索要資料

    HTTP協議規定:一個完成的HTTP協議要包含三個部分: 請求行、要求標頭、請求體

    • 請求行:主要包含要求方法、請求路徑、HTTP協議版本

      "GET /resources/images/ HTTP/1.1"

    • 要求標頭:主要包含了對用戶端環境的描述,用戶端請求的主機地址資訊。

      Host: 192.168.38.24:8080 class="Apple-tab-span">// 用戶端想訪問的伺服器主機地址

      Accept: text/html // 用戶端所能接收的資料類型

      Accept-Language: zh-cn // 用戶端的語言環境

      Accept-Encoding: gzip // 用戶端支援的資料壓縮格式

      Host: m.baidu.com // 用戶端想訪問的伺服器主機地址

      User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:37.0) Gecko/20100101 Firefox/37.0 // 用戶端的類型,用戶端的軟體環境

    • 請求體:用戶端發給伺服器的具體資料,比如檔案/資料

     

    HTTP響應:伺服器返回用戶端想要的資料

    用戶端向伺服器發送請求,伺服器應當做出響應,即返回資料給用戶端

    HTTP協議規定:1個完整的HTTP響應中包含以下內容:

    • 狀態行:包含了HTTP協議版本、狀態嗎、狀態代碼對應的英文名稱HTTP/1.1 200 OK
    • 回應標頭:包含了對伺服器的描述,對返回資料的描述。

            Content-Encoding: gzip // 伺服器支援的資料壓縮格式

            Content-Length:  1528 // 返回資料的長度

            Content-Type:  application/xhtml+xml;charset=utf-8 // 返回資料的類型

            Date: Mon, 15 Jun 2015 09:06:46 GMT // 響應的時間

     Server: apache  // 伺服器類型

    • 實體內容:伺服器返回給用戶端的具體資料(圖片/html/檔案...)
    7. HTTP請求的選擇1.HTTP請求的簡單說明

    1.HTTP的方法

      HTTP協議定義了很多方法對應不同的資源操作,其中最常用的是GET 和 POST 方法.

      GET、POST、OPTIONS、HEAD、PUT、DELETE、TRACE、CONNECT、PATCH

      增:PUT

      刪:DELETE

      改:POST

      查:GET

      因為 GET 和 POST 可以實現上述所有操作,所以,在現實開發中,我們只要會用GET 和 POST 方法就可以了.

    2.參數

      在與伺服器互動時,有時候需要給伺服器發送一些資料,比如登入時需要發送使用者名稱和密碼.

      參數:就是指傳遞給伺服器的具體資料.

     

    2. GET請求

      GET:本質是從伺服器得到資料,效率更高.並且GET請求可以被緩衝.

     注意: 網路快取資料,儲存在SQLite的資料庫中(路徑:NSHomeDirectory())。

      在請求 URL 後面以 ? 的形式跟上發給伺服器的參數,參數以 "參數名"="參數值"的形式拼接,多個參數之間用 & 分隔.

     注意:GET的長度是有限制的,不同的瀏覽器有不同的長度限制,一般在2~8K之間.

     

    3. POST請求

      POST:本質是向伺服器發送資料,也可以獲得伺服器處理之後的結果,效率不如GET.POST請求不可以被緩衝,每次重新整理之後都需要重新提交表單.

    發送給伺服器的參數全部放在'請求體'中;理論上,POST傳遞的資料量沒有限制.

    注意:所有涉及到使用者隱私的資料(密碼/銀行卡號等...)都要用POST的方式傳遞.

    4.GET和POST請求的選擇

    GET和POST請求的選擇可以參考下面四個原則:

      1.如果要傳遞大量資料,比如檔案上傳,只能用POST請求

      2.GET的安全性比POST要差些,如果包含機密\敏感資訊,建議用POST

      3.如果僅僅是索取資料(資料查詢),建議使用GET

      4.如果是增加、修改、刪除資料,建議使用POST

     

    8. 怎麼發送HTTP請求

    建議:為了提高開發效率,企業開發用的基本是第三方架構

    1. 蘋果原生的發送請求
    • NSURLConnection:用法簡單,最古老最經典最直接的一種方案
    • NSURLSession:iOS 7新出的技術,功能比NSURLConnection更加強大
    • CFNetwork:NSURL*的底層,純C語言
    2. 第三方架構
    • ASIHttpRequest:外號“HTTP終結者”,功能極其強大,可惜早已停止更新
    • AFNetworking:簡單易用,提供了基本夠用的常用功能

    具體如何發送請求,前面的部落格已經有做說明不在此贅述了。

     

    相關文章

    聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.