3.1 網絡基礎數據庫
001 問題:爲何要學習網絡編程? 回答:(1)網絡編程是一種實時更新應用數據的經常使用手段 (2)網絡編程是開發優秀網絡應用的前提和基礎 002 網絡基本概念 2-1 客戶端(就是手機或者ipad等手持設備上面的APP) 2-2 服務器(遠程服務器-本地服務器) 2-3 請求(客戶端索要數據的方式) 2-4 響應(須要客戶端解析數據) 2-5 數據庫(服務器的數據從哪裏來)
3.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】:服務器內部錯誤,沒法完成請求