[經典小題一道] 在瀏覽器中輸入:http://www.baidu.com/後到底發生了神馬?

     今天看到一句話很喜歡,就順手記了下來:「真正的堅持到最後靠的不是激情,而是恰到好處的喜歡和投入」。瀏覽器

     一直看到有這樣一道題,感受頗有意思,由於在看到這個問題以前,我怎麼沒有想過這個呢?看來仍是思想不夠深刻啊,之後要多多思考。緩存

      在瀏覽器輸入:http://www.baidu.com/ 到最後瀏覽器出現相應的網頁,這個過程究竟發生了神馬?服務器

      首先是咱們主動在瀏覽器輸入,說明咱們想請求與目的服務器鏈接,要想鏈接目的服務器,咱們首先必須知道的是它的IP地址,這樣咱們才能找到它,因此咱們首先作的NO.1網絡

      第一步:根據輸入的內容,找到目的主機IP。網站

      可是爲何咱們輸入是字母(域名)也能夠呢?這裏就涉及到了一個DNS域名解析的問題,它會幫你把你輸入方便的域名轉化爲目的IP而給你哦,感受這我的好厲害啊!那具體它又是如何解析的呢?url

      (1)假如你瀏覽器以前訪問過這個地址那麼它會緩存這個IP一段時間,若是有緩存,那就方便就近了,直接返回IP,不然進行下一步。spa

      (2)若是緩存中沒有這個IP,瀏覽器會進行一個系統調用,查詢本地有個hosts文件,若是找到,直接返回IP,不然進行下一步(在計算機這裏指Linux系統的目錄etc下有個host文件,hosts文件中保存着域名和對應IP的對應解析).net

      (3)進行了本地(1)(2)查詢無果後,只能藉助於網絡。路由器通常都會有本身的DNS緩存。若是無果,這能借助於DNS遞歸解析了。設計

      (4)這時DNS服務器就會開始從根域名服務器開始遞歸搜索(感受DNS服務器也挺辛苦的啊),從.com頂級域名服務器到baidu的域名服務器。到這裏瀏覽器得到了IP,達到了第一步的目的。遞歸

      有了咱們心心念的IP地址後,感受瞬間有了方向,那麼接下來就是和網站服務器進行鏈接,這樣咱們才能和它傳輸數據啊。

      第二步:瀏覽器與網站創建TCP鏈接

       至於TCP的鏈接,這裏又涉及了不少重要的知識點須要咱們知道。採用你們都熟知的TCP三次握手就可以完成與服務器的鏈接,具體的過程要心中有數,這裏面先省略。經過這個讓我想到了一些小問題,都是須要知道,也是常常被問到的,TCP鏈接爲何是三次握手?不是兩次、四次呢?這些道理須要我搞懂。(後續會整理好)

      第三步:瀏覽器發起請求(請求類型GET POST.......)

      以前的步驟都爲咱們打通了和服務器之間的通道了,因此接下來咱們想要幹啥就能夠直接請求了。只管感受和easy啊,可是。這裏面設計了太多的關於http協議、Web開發之類的寶貴東西,只想說須要看的東西太多了。。

      第四部:顯示頁面或返回其餘

      每個點細扣都有太多的相關點,本事學識短淺,整理好後繼續補充。

相關文章
相關標籤/搜索