一.網絡基礎
- 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