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
































