介於本身的網絡方面知識爛的一塌糊塗,因此準備寫相關網絡的文章,可是考慮所有寫在一篇太長了,因此分開寫,但願你們能仔細看,最好能夠指出個人錯誤,讓我也能糾正。web
1.講解相關的整個網絡體系結構:面試
Android技能樹 — 網絡小結(1)之網絡體系結構api
2.講解相關網絡的重要知識點,好比不少人都聽過相關網絡方面的名詞,可是僅限於聽過而已,什麼tcp ,udp ,socket ,websocket, http ,https ,而後webservice是啥,跟websocket很像,socket和websocket啥關係長的也很像,session,token,cookie又是啥。bash
Android技能樹 — 網絡小結(2)之TCP/UDP服務器
Android技能樹 — 網絡小結(3)之HTTP/HTTPSwebsocket
Android技能樹 — 網絡小結(4)之socket/websocket/webservicecookie
相關網絡知識點小結- cookie/session/token(待寫)網絡
3.相關的第三方框架的源碼解析,畢竟如今面試個大點的公司,okhttp和retrofit源碼是必問的。session
Android技能樹 — 網絡小結(6)之 OkHttp超超超超超超超詳細解析數據結構
Android技能樹 — 網絡小結(7)之 Retrofit源碼詳細解析
網絡這塊知識其實不少開發估計都很薄弱,不少開發一直都是使用一些框架,而後和後臺約定好返回的數據結構,而後就能夠幹活了。好比咱們知道了retrofit調用的api後,填入相關的http url及要傳給服務器的指定參數,咱們就能夠拿到相關的返回JSON:
{
"success":true,
"msg":"xxxx",
"data":{
"key1":value1,
"key2":value2
}
}
(固然其中的``success``通常的也是會用``code``值來返回,
而後移動端來判斷是不是200便可。)
複製代碼
而後經過相似FastJson或者Gson等轉換成對象,而後用在咱們的app中便可。
因此在不少時候,咱們發現咱們對於網絡的東西一竅不通,照樣能作出一個app來。並且提及來也是頭頭是道,可是一旦去面試大點的公司,問的稍微詳細點,就直接啞口無言,而後基本就面試GG了。
而介於個人網絡基礎也是超級爛,因此此次是參考別人的文章,本身理解,而且作了總結,文章最後會附上相關連接,而且一些圖也是直接參考這些大佬們的文章裏面的配圖。(因此不要噴我直接盜圖)。
不知道你們小時候有沒有寫過信,經過郵局寄出去,可是那時候咱們要手動的把真正寫的內容寫在紙上,而後塞入信封中,而後在信封上寫上相關發件人信息,收件人信息,郵編等,而後才能順利的寄到目的地。而收件人最關心的確定是裏面的真正內容的紙張,甚至能夠不看信封的信息。
那咱們在平時發送相關的信息的時候其實也跟寄信有點像,咱們也只是寫了相關的主要信息,可是最後卻能發送到指定的地點,由於幫咱們一層層封裝了數據(有點像幫忙寫了信封上的信息)。而後對方收到信息的時候,也只看到了咱們發給他的主要信息(有點像幫忙打開了信封,拿出來裏面的主要內容)。
看這個圖是否是感受很像剛纔寄信,咱們主要的DATA內容被一層層封裝,而後到了接收方後,一層層解封裝。
有些人可能會問,那這一層層的,到底具體作了什麼呢,其實讓你如今想象你也大概知道一些,好比對方的地址和你的地址;各類約定好的協議(好比咱們信封上面的郵編號也算是規定的協議);好比你用的是英文寫的,或者用的中文寫的,對方也要會看懂,你們最好也是要相互約定,這樣寄信過去後才能更方面讓對方讀懂等等。
咱們一步步具體來看:
其實上面那個圖用的是OSI體系結構,全部咱們能夠看到有七層。
很差意思。。。走錯片場了。。。應該是下面的圖片。
其實看上面的圖已經大概有點了解了:
來個更具體的圖片:
而後不少人說七層太多了看不懂,而後表示直接放棄,(PS:我本身也表示放棄) 雖然知道封裝了不少東西,可是層數太多,真心不想看下去。因此後來看到還有其餘的比較少的層數結構
TCP / IP的體系結構簡化了計算機網絡的結構,由原來的七層編導如今的四層,可是其功能並無減小。
是否是一會兒少了不少,咱們知道一個數據從這邊發送到另一個地方,很像寄信同樣,咱們就以寄信來講明,更加通俗易懂。寄信無非就是要有這幾個條件:
因此上面的例子看懂了咱們再來看TCP/IP的四層協議(固然我只是講了一個大概,沒有講解詳細,甚至若是講錯了,望指正
):
其實和上面的四層相似,只是最下面的網絡接口層拆分紅了OSI的最底下的二個層:物理層和數據鏈路層。其餘都是同樣的。
看了圖片是否是一會兒就明白了三者的關係了,相似於TCP/IP的結構更多的是把OSI的七層標準,把某幾層合併簡略成了一層。從而更好的理解。
emmmm.........但願你們輕噴。
參考文章: