日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

面試官:瀏覽器請(qǐng)求時(shí),背后都干了些啥?

 昵稱(chēng)63557093 2020-03-11

  1、面試題用瀏覽器請(qǐng)求一個(gè)鏈接的時(shí)候,經(jīng)歷了哪些過(guò)程(DNS解析過(guò)程)?2、面試官心里分析

  這個(gè)問(wèn)題,其實(shí)就是跟之前的那個(gè)一樣,他就是考察考察你的基本功,看你對(duì)基本的網(wǎng)絡(luò)通信知識(shí)有沒(méi)有了解。

  而且話(huà)說(shuō)回來(lái),考察一個(gè)人的基本功,就這個(gè)問(wèn)題應(yīng)該是相當(dāng)經(jīng)典和直接的一個(gè)問(wèn)題,你理解清楚了,那么網(wǎng)絡(luò)通信這塊的一些基本概念,你基本都了解了。

  3、面試題剖析

  如果你閱讀過(guò)昨天發(fā)布文章,就應(yīng)該知道網(wǎng)絡(luò)七層模型大概都是怎么回事了,然后四層模型其實(shí)就是會(huì)話(huà)層、表示層和應(yīng)用層,合并為了一個(gè)應(yīng)用層,同時(shí)沒(méi)把物理層算在內(nèi)

  并且我們也大概知道每一層的協(xié)議和作用,網(wǎng)絡(luò)通信的時(shí)候都是怎么回事了,現(xiàn)在我們來(lái)看看假設(shè)通過(guò)瀏覽器發(fā)送一個(gè)請(qǐng)求,你訪問(wèn)到那個(gè)網(wǎng)站對(duì)應(yīng)的機(jī)器,然后人家再給你一個(gè)響應(yīng)的全過(guò)程。

  現(xiàn)在我們先假設(shè),我們給電腦設(shè)置了幾個(gè)東西:ip地址:192.168.31.37子網(wǎng)掩碼:255.255.255.0網(wǎng)關(guān)地址:192.168.31.1DNS地址:8.8.8.8這時(shí),我們打開(kāi)一個(gè)瀏覽器,請(qǐng)求www.baidu.com地址,這個(gè)時(shí)候找DNS服務(wù)器,DNS服務(wù)器解析域名之后,返回一個(gè)ip地址,比如172.194.26.108。

  接著會(huì)判斷兩個(gè)ip地址是不是一個(gè)子網(wǎng)的,用子網(wǎng)掩碼255.255.255.0,對(duì)兩個(gè)ip地址做與運(yùn)算,拿到192.168.31.0和172.194.26.0,明顯不是一個(gè)子網(wǎng)的。

  如圖:

  那就得發(fā)送一個(gè)數(shù)據(jù)包給網(wǎng)關(guān),其實(shí)你就認(rèn)為是我們的路由器吧,就是192.168.31.1,而且我們是可以拿到網(wǎng)關(guān)ip地址的mac地址的,現(xiàn)在我們從應(yīng)用層出發(fā),通過(guò)瀏覽器訪問(wèn)一個(gè)網(wǎng)站,是走應(yīng)用層的http協(xié)議的,并且要把瀏覽器發(fā)出的請(qǐng)求打包成數(shù)據(jù)包,要把哪些東西給放到數(shù)據(jù)包中去呢?

  http協(xié)議分為幾個(gè)部分:

  請(qǐng)求方法+URL地址+http版本

  比如

  GEThttp://172.194.26.108/testHTTP/1.1,類(lèi)似這種請(qǐng)求頭,類(lèi)似下面這種:

  Host:upload.jiangsu.ioProxy-Connection:keep-aliveUser-Agent:Mozilla/5.0

  等等。。。

  請(qǐng)求體,比如常見(jiàn)的可以放一個(gè)json這就構(gòu)成了一個(gè)http請(qǐng)求報(bào)文瀏覽器請(qǐng)求一個(gè)地址,先按照應(yīng)用層的http協(xié)議,封裝一個(gè)應(yīng)用層數(shù)據(jù)包,數(shù)據(jù)包里就放了http請(qǐng)求報(bào)文,這個(gè)時(shí)候會(huì)將這個(gè)http請(qǐng)求報(bào)文打包成一個(gè)數(shù)據(jù)包,僅僅只是數(shù)據(jù)包的數(shù)據(jù)部分,此時(shí)是數(shù)據(jù)包是沒(méi)有頭的。上面根據(jù)http協(xié)議搞一個(gè)http請(qǐng)求報(bào)文,然后搞一個(gè)數(shù)據(jù)包出來(lái),就是網(wǎng)絡(luò)模型中到的應(yīng)用層干的事兒了。接著就是跑傳輸層來(lái)了,這個(gè)層是tcp協(xié)議,這個(gè)tcp協(xié)議會(huì)讓你設(shè)置端口,發(fā)送方的端口隨機(jī)選一個(gè),接收方的端口一般是默認(rèn)的80端口。

  這個(gè)時(shí)候,會(huì)把應(yīng)用層數(shù)據(jù)包給封裝到tcp數(shù)據(jù)包中去,而且會(huì)加一個(gè)tcp頭,這個(gè)tcp數(shù)據(jù)包是對(duì)應(yīng)一個(gè)tcp頭的,這個(gè)tcp頭里就放了端口號(hào)信息。如圖:

  

  接著跑到網(wǎng)絡(luò)層來(lái)了,走ip協(xié)議,這個(gè)時(shí)候會(huì)把tcp頭和tcp數(shù)據(jù)包,放到ip數(shù)據(jù)包里去,然后再搞一個(gè)ip頭,ip頭里本機(jī)和目標(biāo)機(jī)器的ip地址。這里本機(jī)ip地址是192.168.31.37,

  目標(biāo)機(jī)器是172.194.26.108。

  因?yàn)?,通過(guò)ip協(xié)議,可以判斷說(shuō),兩個(gè)ip地址不是在一個(gè)子網(wǎng)內(nèi)的,所以此時(shí)只能將數(shù)據(jù)包先通過(guò)以太網(wǎng)協(xié)議廣播到網(wǎng)關(guān)上去,通過(guò)網(wǎng)關(guān)再給他發(fā)送出去,如圖:

http://img1.sycdn.imooc.com/5e634a7e0001d8ef06920197.jpg

  接著是數(shù)據(jù)鏈路層,這塊走以太網(wǎng)協(xié)議,這里是把ip頭和ip數(shù)據(jù)包封到以太網(wǎng)數(shù)據(jù)包里去,然后再加一個(gè)以太網(wǎng)數(shù)據(jù)包的頭,頭里放了本機(jī)網(wǎng)卡mac地址,和網(wǎng)關(guān)的mac地址。但是以太網(wǎng)數(shù)據(jù)包的限制是1500個(gè)字節(jié),但是假設(shè)這個(gè)時(shí)候ip數(shù)據(jù)包都5000個(gè)字節(jié)了,那么需要將ip數(shù)據(jù)包切割一下。這個(gè)時(shí)候一個(gè)以太網(wǎng)數(shù)據(jù)包要切割為4個(gè)數(shù)據(jù)包,每個(gè)數(shù)據(jù)包包含了以太網(wǎng)頭、ip頭和切割后的ip數(shù)據(jù)包,4個(gè)數(shù)據(jù)包的大小分別是1500,1500,1500,560。ip頭里包含了每個(gè)數(shù)據(jù)包的序號(hào)。如圖:

  

  這4個(gè)以太網(wǎng)數(shù)據(jù)包都會(huì)通過(guò)交換機(jī)發(fā)到你的網(wǎng)關(guān)上,然后你的路由器是可以聯(lián)通別的子網(wǎng)的,這個(gè)是時(shí)候你的路由器就會(huì)轉(zhuǎn)發(fā)到別的子網(wǎng)的可能也是某個(gè)路由器里去,然后以此類(lèi)推吧,N多個(gè)路由器或者你叫網(wǎng)關(guān)也行,N多個(gè)網(wǎng)關(guān)轉(zhuǎn)發(fā)之后,就會(huì)跑到百度的某臺(tái)服務(wù)器,接收到4個(gè)以太網(wǎng)數(shù)據(jù)包。百度服務(wù)器接收到4個(gè)以太網(wǎng)數(shù)據(jù)包以后,根據(jù)ip頭的序號(hào),把4個(gè)以太網(wǎng)數(shù)據(jù)包里的ip數(shù)據(jù)包給拼起來(lái),就還原成一個(gè)完整的ip數(shù)據(jù)包了。接著就從ip數(shù)據(jù)包里面拿出來(lái)tcp數(shù)據(jù)包,再?gòu)膖cp數(shù)據(jù)包里取出來(lái)http數(shù)據(jù)包,讀取出來(lái)http數(shù)據(jù)包里的各種協(xié)議內(nèi)容,接著就是做一些處理,然后再把響應(yīng)結(jié)果封裝成htp響應(yīng)報(bào)文,封裝在http數(shù)據(jù)包里,再一樣的過(guò)程,封裝tcp數(shù)據(jù)包,封裝ip數(shù)據(jù)包,封裝以太網(wǎng)數(shù)據(jù)包,接著通過(guò)網(wǎng)關(guān)給發(fā)回去。如下圖:

http://img4.sycdn.imooc.com/5e634a7f0001f82c08300367.jpg

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶(hù)發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶(hù) 評(píng)論公約

    類(lèi)似文章 更多