Android網路程式設計要學的東西與Http協議學習

2021-08-08 01:34:36 字數 1407 閱讀 2055

實際開發中我們和服務端打交道一般用得都是基於http協議的通訊,所以學好http協議是非常 重要的,當然,我們不用過於考究一些細節的東西,有個大體的了解即可!都是一些概念性的東西!

答:hypertext transfer protocol(超文字傳輸協議),tcp/ip協議的乙個應用層協議,用於 定義web瀏覽器與web伺服器之間交換資料的過程。客戶端連上web伺服器後,若想獲得web伺服器 中的某個web資源,需遵守一定的通訊格式,http協議用於定義客戶端與web伺服器通迅的格式。

答:1.0協議,客戶端與web伺服器建立連線後,只能獲得乙個web資源! 而1.1協議,允許客戶端與web伺服器建立連線後,在乙個連線上獲取多個web資源!

答:我們先要知道兩個名詞:

接著就到tcp/ip三次握手的概念:

如果還不是很清晰,我們再來看三次握手的示意圖:

了解了是吧,然後我們就來看看http操作的乙個流程了:

對於上面的流程如果還不清晰,我們可以使用httpwatch或者firefox抓下包: ps:測試**是小豬的學校的教務系統,輸入賬號密碼後請求登陸,我們可以看到下述資訊:

http請求包含的內容:

http響應包括的內容:

這就一目了然了是吧!

實際開發中我們用得較多的方式是get和post,但是實際開發可能還會用到其他請求方式,比如put, 小豬的實際專案中就用到了,下面為了方便大家,就把所有的請求方式列出來吧:

用得最多的兩個,當然要做下對比啦!

當然,這些狀態碼只是要給參考,實際上決定權在伺服器端(後台的)手上,一種方案是請求後, 伺服器返回給我們的是狀態,或者另一種,在應用不用弄多語言版本的時候最好用,直接返回 一串結果資訊的json給我們,我們直接顯示就好,這樣可以偷懶不少!下面列下狀態碼合集,參考 下就好:

1.

支援客戶/伺服器模式。

2.3.

靈活:http允許傳輸任意型別的資料物件。正在傳輸的型別由content-type加以標記。

4.無連線:無連線的含義是限制每次連線只處理乙個請求。伺服器處理完客戶的請求, 並收到客戶的應答後,即斷開連線。採用這種方式可以節省傳輸時間。

5.無狀態:http協議是無狀態協議。無狀態是指協議對於事務處理沒有記憶能力。 缺少狀態意味著如果後續處理需要前面的資訊,則它必須重傳,這樣可能導致每 次連線傳送的資料量增大。另一方面,在伺服器不需要先前資訊時它的應答就較快。

ps:關於osi七層協議以及tcp四層模型就不在基礎系列講解了~有興趣可以自行了解下!

參考資料:

Android 的網路程式設計

android的網路程式設計分為2種 基於socket的,和基於http協議的。基於socket的用法 伺服器端 先啟動乙個伺服器端的socket serversocket svr new serversocket 8989 開始偵聽請求 socket s svr.accept 取得輸入和輸出 da...

Android 網路程式設計

在寫android相關的webservice時,最基礎的就是android系統的網路程式設計。最基礎的是socket,但是針對於android來進行socket程式設計就會顯得太麻煩,其實android已經為我們封裝好了網路程式設計的相關類,常用的是httpget httppost以及httpurl...

Android網路程式設計

socket程式設計客戶端 socket s new socket ip,port socket程式設計服務端 serversocket ss new serversocket port socket s ss.accept socket服務端的基本程式設計架構 serversocket ss ne...