HTTP的概念、工作機制、資料格式、方法使用
HTTP的定義
HTTP(Hypertext Transfer Protocol),超文字傳輸協議。位於 TCP / IP 協議族的最頂(層應用層)。和HTML一起誕生,用於在網路上請求和傳輸HTML內容。
HTTP的工作方式
1、使用者輸入地址後回車
2、瀏覽器拼裝 HTTP 報⽂併發送請求給服務器
3、服務器處理請求後傳送響應報文給瀏覽器
4、瀏覽器解析響應報文並渲染顯示到界⾯
URL和HTTP報文
URL格式
四部分:協議型別、伺服器地址、埠、路徑
協議型別://伺服器器地址[:端⼝口號]路路徑
https://api.github.com/users/list?sort=desc
報文格式
請求報文

響應報文

請求方法
GET
1、用於獲取資源
2、對伺服器資料不進行修改
3、不傳送Body

對應Retrofit的程式碼:

POST
1、用於增加或修改資源
2、傳送伺服器的內容寫在Body裡面

對應Retrofit的程式碼:

PUT
1、用於修改資源
2、傳送伺服器的內容寫在Body裡面

對應Retrofit的程式碼:

DELETE
1、用於刪除資源
2、不傳送Body

對應Retrofit的程式碼:

HEAD
1、和GET使用方法完全相同
2、和GET唯一區別在於,返回的響應中沒有Body
狀態碼
三位數字,用於對響應結果做出型別化描述(如「獲取成功」「內容未找到」)。
1xx:臨時性訊息。如:100 (繼續傳送)、101(正在切換協議)
2xx:成功。如:200(OK)、201(建立成功)。
3xx:重定向。如:301(永久移動)、302(暫時移動)、304(內容未改變)。
4xx:客戶端錯誤。如:400(客戶端請求錯誤)、401(認證失敗)、403(被禁⽌止)、404(找 不不到內容)。
5xx:服務器錯誤。如:500(伺服器器內部錯誤)。
Header 首部
Host
目標主機。用於在目標伺服器上定位子伺服器,不是在網路上用於定址。
Content-Type
指定 Body 的型別。主要有四類:
1、text/html
2、x-www-form-urlencoded
3、multitype/form-data
4、application/json , image/jpeg , application/zip ...
Content-Length
指定 Body 的⻓長度(位元組)。
Location
指定重定向的目標 URL
User-Agent
使用者代理,即是誰實際傳送請求、接受響應的,例如手機瀏覽器、某款手機 App。
Range / Accept-Range
按範圍取資料
Accept-Range: bytes 響應報文中出現,表示服務器支援按位元組來取範圍資料
Range: bytes=<start>-<end> 請求報文中出現,表示要取哪段資料
Content-Range:<start>-<end>/total 響應報文中出現,表示傳送的是哪段資料
作用:斷點續傳、多執行緒下載。
其他 Headers
Accept: 客戶端能接受的資料型別。如 text/html
Accept-Charset: 客戶端接受的字符集。如 utf-8
Accept-Encoding: 客戶端接受的壓縮編碼型別。如 gzip
Content-Encoding:壓縮型別。如 gzip
Cache
作用:在客戶端或中間網路節點快取資料,降低從服務器取資料的頻率,以提高網路效能。