版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、第三方開源庫 OKHttpOKHttp 系列的分析我們打算從 6 個地方下手, 我們先 從網絡的基礎知識開始,因為 OKHttp 涉及 Http 協(xié)議,所 以對于 Http 的基礎知識,做一個簡單的認識,還是非常有 必要的。這里推薦三本書 圖解 Http Http 權威指南 Java 網絡編程基礎1.OSI 的七層模型七層協(xié)議 .png 協(xié)議總覽 .png2. TCP 的三次握手和四次揮手 TCP 的三次握手和四次揮手.png3. Http 報文簡介HTTP 協(xié)議采用 HTTP 報文的形式傳遞數(shù)據(jù), 客戶端的報文 叫做請求報文; 服務器端的報文叫做響應報文。 既然是報文, 那么一定就會有格式:
2、請求報文( Request) : 請求頭(首部) 空行 請求內容響應報文( Response): 響應頭(首部) 空行 響應內容 請求內容和響應內容這個應該不用過多的介紹,開發(fā)應該都 知道,那么請求頭到底是啥我們也知道,但是說到具體的一 些參數(shù),未必全部知道其作用,所以我們還是詳細了解一下 請求頭和響應頭。這里我們需要自己去搭建一個后臺做測 試,為什么自己去寫接口?第一我們可以了解一下后臺接口 都是怎么寫的,第二像 Cookie 、Session 和 Token 這些都必 須和后臺配合起來才能測試出作用,總不可能去背吧,我們 還是需要自己驗證一下。具體操作在末尾視頻連接中。接下 來我們看下 H
3、TTP 首部都有啥?、z > . t »4. Http 首部HTTP 首部字段包含的信息很豐富(特他媽多的意思) ,我 們可以自己打開瀏覽器觀察觀察,這樣就會有一個更加直觀 的感受,反正這些首部字段非常重要,無論你是自己去寫一 個網絡框架,還是分析 OkHttp 源碼都需要對這些字段有了 解,這里我就羅列一些比較常用的做一下解釋:3.1 請求首部字段Accept:用戶代理可處理的媒體類型Accept-Charset:優(yōu)先的字符集Accept-Language :優(yōu)先的語言(自然語言)Accept-Encoding :優(yōu)先的內容編碼If-Modified-Since :比較資源的
4、更新時間If-Range :資源未更新時發(fā)送實體Byte 的范圍請求Cookie: 設置 Cookie (下面會單獨講)3.2 響應首部字段Cache-Control :控制緩存的行為(下面會單獨講)set-Cookie: 設置 Cookie (下面會單獨講)Location :令客戶端重定向至指定 URIExpires :實體主體過期的日期時間Last-Modified :資源的最后修改日期時間Status Code: 響應的狀態(tài)碼(下面會單獨講)4.Cookie、Session 和 Token4.1 Cookie 、Session 和 Token 都是用來做持久化處理的, 目 的就是讓客戶
5、端和服務端相互認識。 Http 請求默認是不持久 的沒有狀態(tài)的,誰也不認識誰。4.2 Cookie: 是存放在客戶端的信息,服務器通過響應頭 Set-Cookie 字段給客戶端,如果 Cookie 已過期一般是會被 清楚的,如果 Cookie 沒過期下次訪問網站還是會通過請求 頭的 Cookie 字段帶給服務器。4.3 Session: 是存放在服務器上面的客戶端臨時信息, 用戶離 開網站是會被清除的。4.4 Token( App ) '令牌 ':用戶身份的驗證,有點類似于Cookie ,相對來說更安全,一般流程:3.4.1 客戶端向服務端申請 Token3.4.2 服務端收到
6、請求, 會去驗證用戶信息, 簽發(fā)一個 Token 給客戶端,服務端自己也會保存 Token3.4.3 客戶端收到服務端簽發(fā)的 Token 會保存起來,每次請 求帶上 Token3.4.4 服務器收到其他請求,會去驗證客戶端的 Token , 如 果成功返回數(shù)據(jù),不成功啥都不給或者做其他處理5. Http 緩存關于緩存看下這篇文章就可以了: ,與 緩存相關的有兩個重要的字段:Cache-Control (緩存策略) : Public 、 private 、 no-cache、 max-age、no-store (不緩存)Expire s (緩存的過期策略) :指名了緩存數(shù)據(jù)有效的絕對時 間,告訴
7、客戶端到了這個時間點(比照客戶端時間點)后本 地緩存就作廢了,在這個時間點內客戶端可以認為緩存數(shù)據(jù) 有效,可直接從緩存中加載展示。 還有一種特例,如本地有緩存,但是緩存過期了,這個時候 會再次像服務器發(fā)起請求,但是服務器數(shù)據(jù)如果沒有變動那 么不一定會給你數(shù)據(jù),而是返回狀態(tài)碼 304 ,那么什么情 況下會返回 304 呢?這個就是論自己寫接口的重要性 我們自己寫一個測試接口,測試一下就可以看到這種結果 了。6. Http 狀態(tài)碼1xx: Infomational ( 信息狀態(tài)碼 ) ,接收的請求正在處理2xx: Succeed(成功),請求正常處理完畢,如200, 2043xx: Redirection( 重定向 ),需要進行附加操作, 一般是沒有響 應數(shù)據(jù)返回的,如 304(Not,modified )3074xx: Client Error ( 客戶端的錯誤 ),服務器無法處理請求,如404, 4055xx: Server Error ( 服務端的錯誤 ),服務器處理請求出錯,如500, 5027. Http 和 Https 的區(qū)別Htt
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度水泥生產線環(huán)保設施維護合同
- 課題申報參考:明清時期陜西古地圖資料集成與數(shù)字活化研究
- 課題申報參考:馬克思主義文藝育德觀的中國化時代化研究
- 2025版生態(tài)農業(yè)設施建設合同規(guī)范文本3篇
- 2025年度門窗安裝與智能化家居系統(tǒng)集成合同范本3篇
- 2025年度個人信用擔保委托代理合同3篇
- 2025年度內參內容整合與傳播合同4篇
- 2025年度二手車買賣合同車輛交易信息保密及共享協(xié)議4篇
- 2025年度個人醫(yī)療貸款合同范本修訂版3篇
- 二零二五年度建筑模板腳手架租賃與拆除服務合同規(guī)范4篇
- 充電樁項目運營方案
- 退休人員出國探親申請書
- 傷殘撫恤管理辦法實施細則
- 高中物理競賽真題分類匯編 4 光學 (學生版+解析版50題)
- 西方經濟學-高鴻業(yè)-筆記
- 幼兒園美術教育研究策略國內外
- 高中英語選擇性必修一單詞表
- 物業(yè)公司介紹
- 2024屆河南省五市高三第一次聯(lián)考英語試題及答案
- 【永輝超市公司員工招聘問題及優(yōu)化(12000字論文)】
- 孕婦學校品管圈課件
評論
0/150
提交評論