天天看點

iOS開發網絡學習(1.網絡)

一.網絡基礎

  • 1 網絡基礎
    001網絡程式設計
            (1)網絡程式設計是一種實時更新應用資料的常用手段
            (2)網絡程式設計是開發優秀網絡應用的前提和基礎
    
      002 網絡基本概念
          2-1 用戶端(就是手機或者ipad等手持裝置上面的APP)
          2-2 伺服器(遠端伺服器-本地伺服器)
          2-3 請求(用戶端索要資料的方式)
          2-4 響應(需要用戶端解析資料)
          2-5 資料庫(伺服器的資料從哪裡來)
               
  • 2 Http
    001 URL
          1-1 如何找到伺服器(通過一個唯一的URL)
          1-2 URL介紹
              a. 統一資源定位符
              b. url格式(協定\主機位址\路徑)
                  協定:不同的協定,代表着不同的資源查找方式、資源傳輸方式
                  主機位址:存放資源的主機(伺服器)的IP位址(域名)
                  路徑:資源在主機(伺服器)中的具體位置
    
          1-3 請求協定
              【file】通路的是本地計算機上的資源,格式是file://(不用加主機位址)
              【ftp】通路的是共享主機的檔案資源,格式是ftp://
              【mailto】通路的是電子郵件位址,格式是mailto:
              【http】超文本傳輸協定,通路的是遠端的網絡資源,格式是http://(網絡請求中最常用的協定)
    
      002 http協定
          2-1 http協定簡單介紹
              a.超文本傳輸協定
              b.規定用戶端和伺服器之間的資料傳輸格式
              c.讓用戶端和伺服器能有效地進行資料溝通
    
          2-2 http協定優缺點
              a.簡單快速(協定簡單,伺服器端程式規模小,通信速度快)
              b.靈活(允許傳輸各種資料)
              c.非持續性連接配接(1.1之前版本是非持續的,即限制每次連接配接隻處理一個請求,伺服器對用戶端的請求做出響應後,馬上斷開連接配接,這種方式可以節省傳輸時間)
          2-3 基本通信過程
              a.請求:用戶端向伺服器索要資料
              b.響應:伺服器傳回用戶端相應的資料
    
      003 GET和POST請求
          3-1 http裡面發送請求的方法
          GET(常用)、POST(常用)、OPTIONS、HEAD、PUT、DELETE、TRACE、CONNECT、PATCH
    
          3-2 GET和POST請求的對比【差別在于參數如何傳遞】
              GET
              在請求URL後面以?的形式跟上發給伺服器的參數,多個參數之間用&隔開,比如
              http://ww.test.com/login?username=123&pwd=234&type=JSON
              由于浏覽器和伺服器對URL長度有限制,是以在URL後面附帶的參數是有限制的,通常不能超過1KB
    
              POST
              發給伺服器的參數全部放在請求體中
              理論上,POST傳遞的資料量沒有限制(具體還得看伺服器的處理能力)
    
          3-3 如何選擇【除簡單資料查詢外,其它的一律使用POST請求】
              a.如果要傳遞大量資料,比如檔案上傳,隻能用POST請求
              b.GET的安全性比POST要差些,如果包含機密\敏感資訊,建議用POST
              c.如果僅僅是索取資料(資料查詢),建議使用GET
              d.如果是增加、修改、删除資料,建議使用POST
    
    
      004 iOS中發送http請求的方案
          4-1 蘋果原生
              NSURLConnection 03年推出的古老技術
              NSURLSession    13年推出iOS7之後,以取代NSURLConnection【重點】
              CFNetwork       底層技術、C語言的
    
          4-2 第三方架構
              ASIHttpRequest
              AFNetworking        【重點】
              MKNetworkKit
    
      005 http請求通信過程
          5-1 請求
              【包括請求頭+請求體·非必選】
          5-2 響應
              【響應頭+響應體】
          5-3 通信過程
              a.發送請求的時候把請求頭和請求體(請求體是非必須的)包裝成一個請求對象
              b.伺服器端對請求進行響應,在響應資訊中包含響應頭和響應體,響應資訊是對伺服器端的描述,具體的資訊放在響應體中傳遞給用戶端
          5-4 狀态碼
              【200】:請求成功
              【400】:用戶端請求的文法錯誤,伺服器無法解析
              【404】:無法找到資源
              【500】:伺服器内部錯誤,無法完成請求
               

 參考文檔:https://www.jianshu.com/p/d26516523c27