首先我們來看一下瀏覽器訪問web伺服器這一過程的全貌.訪問web伺服器並顯示網頁這一過程包含了瀏覽器和web伺服器之間的一系列互動,主要是下面這樣的互動.
瀏覽器向web伺服器傳送請求.
web伺服器根據請求向瀏覽器傳送響應.
要實現應用程式之間的互動,我們需要乙個能夠在瀏覽器和web伺服器之間傳遞請求和響應的機制.網路是由很多計算機等裝置相互連線組成的,因此在通訊過程中需要確定正確的通訊物件,並將請求和響應傳送給它們.請求和響應在傳遞的過程中可能會丟失和損壞,因此這些情況也要考慮到.
所以說,我們需要一種機制,無論遇到任何情況都能夠將請求和響應準確無誤地傳送給對方.由於請求和響應都是由0和1組成的數字資訊,所以可以說,我們需要的是一種能夠將數字資訊搬運到指定目的地的機制.
這種機制是由作業系統中的網路控制軟體,以及交換機,路由器等裝置分工合作來實現的,它的基本思路是將數字資訊分割成乙個乙個的小塊,然後裝入一些被稱為"包"的容器中來運送.
總體上分為如下六個環節.
我們的探索之旅是從瀏覽器中輸入**(url)開始的.例如,當我們輸入下面這樣的**時,瀏覽器就會按照一定的規則去分析這個**的含義,然後根據其含義生成請求訊息.
上面這個例子中,瀏覽器生成的訊息表示"請給我index.html這一檔案中儲存的網頁資料",接著瀏覽器會將請求傳送給 web伺服器.
當然瀏覽器並不會親自負責資料的傳送.傳送訊息是搬運數字資訊的機制負責的工作,因此瀏覽器會委託它將資料傳送出去.
協議棧(網路控制軟體叫做協議棧)會將從瀏覽器接收到的訊息打包,然後加上目的位址等控制資訊.接下來,協議棧會將包交給網絡卡(負責乙太網或無線網路通訊的硬體).然後,網絡卡會將包轉換為電訊號並通過網線傳送出去.這樣一來,包就進入到網路中了.
網絡卡傳送的包會經過交換機等裝置,到達用來接入網際網路的路由器.路由器的後面就是網際網路,網路運營商會負責將包送到目的地,就好像我們把信投到郵筒中之後,郵遞員會負責把信送給收件人一樣.
接下來,資料從用來接入網際網路的路由器出發,進入了網際網路的內部.網際網路的入口線路稱為接入網.一般來說我們可以用**線,isdn,adsl,有線電視,光線,專線等多種通訊線路來接入網際網路,這些通訊線路統稱為接入網.接入網連線到簽約的網路運營商,並接入被稱為接入點的裝置.
接入點的實體是一台專為運營商設計的路由器,我們可以把它理解為離你家最近的郵局.接入點的後面就是網際網路的骨幹部分了.
通過骨幹網之後,網路包最終到達了web伺服器所在的區域網中.接著,它會遇到防火牆,防火牆會對進入的包進行檢查.檢查完之後,網路包接下來可能還會遇到快取伺服器.如果要訪問的網頁資料正好在快取伺服器中能夠找到,那麼就可以不用勞煩web伺服器,直接從快取伺服器讀出資料.
當網路包到達web伺服器後,資料會被解包並還原為原始的請求訊息,然後交給web伺服器程式.和客戶端一樣,這個操作也是由作業系統中的協議棧來完成的.接下來web伺服器程式分析請求訊息的含義,並按照其中的指示將資料裝入響應訊息中,然後發回給客戶端.
推薦系統全貌
如果把推薦系統簡單拆開來看,推薦系統主要是由資料 演算法 架構三個方面組成。推薦的框架主要有以下幾個模組 三 使用者畫像和內容產品畫像 使用者畫像可以分為靜態畫像和動態畫像。隱式行為的權重往往不會有顯示行為大,但是在實際業務中,使用者的顯示行為都是比較稀疏的,所以需要依賴大量的隱式行為。模型標籤是由...
iOS新手必看之全貌
學習乙個新事物,先了解下這個事物全貌,這樣在學習的過程中才能穩紮穩打,增強自信,這裡在別處找的一張圖很經典。這圖描述了整個uikit的繼承關係,學習完成之後對於以後做自定義控制項開發幫助很大。這圖 於某某機構,記錄了乙個ios工程師從初級到高階的所需要的種種技能。當你看到這圖後,可以儲存下來對照一下...
資料結構的知識點全貌
資料結構是演算法的基石,演算法是軟體靈魂。資料結構的很多概念真的是很莫名其妙,很多坑爹的定義,筆者開始很搞不明白,為什麼學資料結構?為什麼用哪個拗口詞語?這些概念到底用在什麼地方?筆者試圖用自己簡單的話來闡述這些問題,希望能對這些感覺不是很好理解的同學有幫助。不廢話,直接開始。一 概論 二 線性表 ...