關于網絡請求資料總結
目錄介紹
1.Http請求與響應
1.1 Http請求包的結構
1.2 HTTP響應包結構
2.Http請求方式
3.Get和Post的比較
3.1 get請求
3.2 post請求
3.3 其他差別
3.4 網絡心聲
4.Http響應方式
5.同步和異步
6.Http緩存機制講解
6.1 request請求字段含義
6.2 response響應字段含義
6.3 緩存機制邏輯圖
0.本人寫的綜合案例
<a href="https://github.com/yangchong211/LifeHelper">案例</a>
<a href="https://github.com/yangchong211/LifeHelper/blob/master/README.md">說明及截圖</a>
子產品:新聞,音樂,視訊,圖檔,唐詩宋詞,快遞,天氣,記事本,閱讀器等等
接口:七牛,阿裡雲,天行,幹貨集中營,極速資料,追書神器等等
一次請求就是向目标伺服器發送一串文本。什麼樣的文本?有下面結構的文本。
1.1 HTTP請求包結構

例子:
請求了就會收到響應包(如果對面存在HTTP伺服器)
1.2 HTTP響應包結構
3.Get和Post的比較差別
在url中填寫參數
甚至使用路由
參數是經過編碼放在請求體中的。 編碼包括:
x-www-form-urlencoded`的編碼方式是這樣:
form-data`的編碼方式是這樣:
因為url是存在于請求行中的。 是以Get與Post差別本質就是參數是放在請求行中還是放在請求體中。
Get是明文,Post隐藏
移動端不是浏覽器,不用https全都是明文。 Get傳遞資料上限XXX
胡說。有限制的是浏覽器中的url長度,不是Http協定,移動端請求無影響。Http伺服器部分有限制的設定一下即可。
請求是鍵值對,但傳回資料我們常用Json。
對于記憶體中的結構資料,肯定要用資料描述語言将對象序列化成文本,再用Http傳遞,接收端并從文本還原成結構資料。
對象(伺服器)<-->文本(Http傳輸)<-->對象(移動端) 。
5.同步和異步的比較
這2個概念僅存在于多線程程式設計中。
Android中預設隻有一個主線程,也叫UI線程
因為View繪制隻能在這個線程内進行。是以如果你阻塞了(某些操作使這個線程在此處運作了N秒)這個線程,這期間View繪制将不能進行,UI就會卡。是以要極力避免在UI線程進行耗時操作。網絡請求是一個典型耗時操作。
5.1同步寫的方式:
這就是同步方式。直接耗時操作阻塞線程直到資料接收完畢然後傳回。Android不允許的。會卡死
5.2異步寫的方式:
在子線程進行耗時操作,完成後通過Handler将更新UI的操作發送到主線程執行。這就叫異步。
抽取寫法
記住: 每次都new Thread,new Handler消耗過大
緩存對于移動端是非常重要的存在。
減少請求次數,減小伺服器壓力.
本地資料讀取速度更快,讓頁面不會空白幾百毫秒。
在無網絡的情況下提供資料。
緩存一般由伺服器控制(通過某些方式可以本地控制緩存,比如向過濾器添加緩存控制資訊)。通過在請求頭添加下面幾個字端:
其他說明
脈脈:yc930211