在瀏覽器中輸入網(wǎng)址后,會(huì)有哪些神奇的事情發(fā)生?
在瀏覽器中輸入網(wǎng)址后,網(wǎng)站便打開了。
你可能想不到,就這一個(gè)簡(jiǎn)簡(jiǎn)單單的步驟,背后藏著多么復(fù)雜的技術(shù)步驟。
為了方便理解,我們請(qǐng)出本文的主人公趙四和劉能,通過(guò)他們的視角,來(lái)了解從用戶輸入網(wǎng)址,到打開網(wǎng)站到底經(jīng)歷了什么。
有一天,趙四聽說(shuō)劉能建了一個(gè)個(gè)人網(wǎng)站,想去一探究竟。于是他在瀏覽器中輸入了zhaosi.com的域名并回車。
瀏覽器是劉能的小弟,劉能不論下什么命令,瀏覽器都會(huì)乖乖照做。但瀏覽器也是一個(gè)有原則的人,一些明顯錯(cuò)誤的命令,它會(huì)馬上反饋給劉能,告訴他這是不對(duì)的。
瀏覽器首先會(huì)檢查劉能輸入的網(wǎng)址是否合法。如果劉能輸入的網(wǎng)址zha.osi.com或者zhao@si.com那么瀏覽器會(huì)立即告訴劉能,這是不對(duì)的。
為了自己方便,劉能下達(dá)的命令經(jīng)常很模糊,比如這次訪問(wèn)網(wǎng)站,他直接輸入zhaosi.com,并沒(méi)有告訴瀏覽器是用http協(xié)議還是https協(xié)議。
多嘴去問(wèn)劉能又不太好,于是瀏覽器有自己的處理方法。如果老板沒(méi)有明確告訴我,那么我就默認(rèn)使用http協(xié)議,如果明確告訴我要使用https,那么就打開https://zhaosi.com這個(gè)網(wǎng)站。
以上只是萬(wàn)里長(zhǎng)征的第一步。如果要建立劉能和趙四網(wǎng)站之間連接,打開zhaosi.com還有很長(zhǎng)的路要走。
第一個(gè)攔路虎是TCP/IP,這是一家很大的公司,壟斷了整個(gè)快遞行業(yè),如果你想寄快遞,只能通過(guò)這家公司,大家也都只認(rèn)它。
它還不怕挨罰,前兩天阿里巴巴因壟斷行為被罰180億,TCP/IP只是笑笑不說(shuō)話~
這家公司有一個(gè)規(guī)定:只認(rèn)IP,不認(rèn)網(wǎng)址(域名)。
你告訴TCP/IP要把這個(gè)包括寄到趙四的網(wǎng)站沒(méi)用,必須告訴它準(zhǔn)確的地址,精確到門牌號(hào)(IP)。
可劉能并不知道趙四的網(wǎng)站IP地址是多少,咋辦?
于是瀏覽器找到了DNS公司,它的主營(yíng)業(yè)務(wù)類似于114查號(hào)臺(tái)。114可以幫忙查電話號(hào)碼,而DNS可以幫忙查域名對(duì)應(yīng)的IP地址。
劉能告訴DNS趙四的網(wǎng)站地址是zhaosi.com,委托它幫忙查詢一下對(duì)應(yīng)的IP地址,再聯(lián)系TCP/IP。
DNS接受委托后,開始查詢。先查查自己內(nèi)存里的DNS Cache,沒(méi)有找到!再查查本地硬盤的host文件,也沒(méi)有找到。最后它只能聯(lián)系自己的DNS服務(wù)器8.8.8.8。
漫長(zhǎng)的查IP地址之路開始了。
DNS將自己的查詢打好包。
- 收件人地址:8.8.8.8
- 寄件人:1.1.1.1
負(fù)責(zé)收件的是UDP,接過(guò)包裹后,他在上面寫了幾筆:
- 收件人53號(hào)
- 發(fā)件人56002號(hào)
之所以要寫上門牌號(hào),是因?yàn)橐粋€(gè)地址可能對(duì)應(yīng)很多個(gè)門牌號(hào)。
干完這些事后,他聯(lián)系IP司機(jī),請(qǐng)求他把包裹送到目的地。IP司機(jī)查了IP路由表,發(fā)現(xiàn)要出關(guān),出關(guān)的要求是,司機(jī)必須知道MAC地址。
怎么辦?IP司機(jī)想了一個(gè)好方法,問(wèn)問(wèn)當(dāng)?shù)氐南氲紸RP不就行了?
ARP立馬喊了一聲,網(wǎng)關(guān)MAC地址妥妥的收入囊中:xx.xx.xx.xx.xx.xx
有了MAC地址,IP司機(jī)順利出關(guān),上了Internet高速公路,一路狂奔……
最終包裹到達(dá)DNS服務(wù)器,DNS服務(wù)器一看,zhaosi.com的IP地址,剛好在本地緩存里有,直接告訴瀏覽器即可。
如果本地緩存沒(méi)有,怎么辦?
DNS會(huì)向根域名服務(wù)器發(fā)起查詢,他會(huì)先問(wèn)根域名服務(wù)器:“你有zhaosi.com的IP地址嗎?”
根域名服務(wù)器告訴他:“去com服務(wù)器找。”
接著他去問(wèn)com服務(wù)器,一層層下來(lái),終于知道zhaosi.com的IP地址了,最后再告訴瀏覽器。
歷經(jīng)千辛萬(wàn)苦,DNS不負(fù)使命,終于拿到IP地址,這下可以聯(lián)系TCP/IP公司了。
根據(jù)TPC協(xié)議,劉能想要訪問(wèn)趙四的網(wǎng)站,必須先問(wèn)趙四在不在,要對(duì)方在才行。通常的要這樣聯(lián)系對(duì)方:
“在嗎?想去你家做客。”
趙四:“我在,歡迎啊!” “好的,馬上就到” |
經(jīng)過(guò)這三次對(duì)話(三次握手)后,包裹便可以順利到達(dá)目的地。
劉能終于打開了趙四的個(gè)人網(wǎng)站。
劉能打死也不知道,自己一個(gè)動(dòng)作,會(huì)產(chǎn)生如此復(fù)雜的計(jì)算量……