標籤:要求標頭 head 參數 div android title 分割 簡單 用戶端
No1:
用戶端與伺服器的互動流程:
1)用戶端執行網路請求,從URL中解析出伺服器的主機名稱
2)將伺服器的主機名稱轉換成伺服器的IP地址
3)將連接埠號碼從URL中解析出來
4)建立一條從用戶端與Web伺服器的TCP串連
5)用戶端通過輸出資料流向伺服器發送一條HTTP請求
6)伺服器向用戶端回送一條HTTP響應報文
7)用戶端從輸入資料流擷取報文
8)用戶端解析報文,關閉串連
9)用戶端將結果顯示在UI上
No2:
HTTP請求方式:
1)GET
擷取伺服器中某個資源,www.devtf.cn/articles/123.html?username=myname&userid=123
2)POST
通常會會用來提交HTML的表單
3)PUT
會向伺服器寫入資源
4)DELETE
請求伺服器刪除請求URL所指定的資源。但是,用戶端應用程式無法保證刪除操作一定會被執行。因為,HTTP規範允許伺服器在不通知用戶端的情況下撤銷請求。DELETE方式和GET請求一樣,參數都需要放在請求的URL中。
5)HEAD
與GET方法行為很類似,但伺服器在響應中只返回首部,不會返回實體的主體部分。這就允許用戶端在未擷取實際資源的情況下,對資源的首部進行檢查。
6)TRACE
TRACE請求會在目的服務端發起一個“環回”診斷。行程最後一站的伺服器會彈回一條TRACE響應,並在響應主體中攜帶它收到的原始請求報文。這樣用戶端就可以查看在所有中間HTTP應用程式組成的請求/響應鏈上,原始報文是否以及如何被毀壞或修改過。
主要用於診斷,即用於驗證請求是否如願穿過了請求/響應鏈
7)OPTIONS請求
OPTIONS方法請求Web伺服器告知其支援的各種功能。可以詢問伺服器通常支援哪些方法,或者對某些特殊資源支援哪些方法(有些伺服器可能只支援對一些特殊類型的對象使用特定的操作)
No3:
一個HTTP請求報文由請求行(request line)、要求標頭部(header)、空行和請求資料4個部分組成。
HTTP響應也由3個部分組成,分別是:狀態行、訊息前序、響應本文。
No4:
常見狀態碼、狀態原因
1)200 OK:用戶端請求成功
2)400 Bad Request:用戶端請求有語法錯誤,不能被伺服器所理解
3)401 Unauthorized:請求未經授權,這個狀態代碼必須和WWW-Authenticate前序域一起使用
4)403 Forbidden:伺服器收到請求,但是拒絕提供服務
5)404 Not Fount:請求資源不存在,舉個例子:輸入了錯誤的URL
6)500 Internal Server Error:伺服器發生不可預期的錯誤
7)503 Server Unavailable:伺服器當前不能處理用戶端的請求,一段時間後可能恢複正常,舉個例子:HTTP/1.1 200 OK(CRLF)
No5:
HTTP要傳送一條報文時,會以流的形式將報文資料的內容通過一條開啟的TCP串連按序傳輸。TCP收到資料流之後,會將資料流分割成被稱作段的小資料區塊,並將段封裝在IP分組中,通過網際網路進行傳輸。所有這些工作都是由TCP/IP軟體來處理的,程式員什麼都看不到。
No6:
android中提供了兩種執行網路請求的方式,一種是使用Apache的HttpClient,另一種則是Java的HttpURLConnection。
No7:
HttpURLConnection的API簡單,體積較小,它的壓縮和緩衝機制可以有效減少網路訪問的流量,在提升速度和省電方面也起到了較大的作用。
在Android 6.0中,HttpClient庫已經被移除。
No8:
一旦向輸出資料流中寫入了參數,那麼請求方式則會變為POST,即使通過setRequestMethod函數將請求設定為“GET”。因為GET請求的參數是附在URL中的,因此,如果是GET請求,則不要在請求體中設定參數。
《android開發進階從小工到專家》讀書筆記--網路架構的設計與實現
《android開發進階從小工到專家》讀書筆記--HTTP網路請求