探索從瀏覽器輸入網(wǎng)址請求到服務(wù)器響應(yīng)返回網(wǎng)頁的過程。
Web瀏覽器
當在瀏覽器輸入一串網(wǎng)址(URL)如( Http://www.baidu.com ) 的時候,瀏覽器會按照一定的規(guī)則去分析這個網(wǎng)址的含義,然后根據(jù)含義生成請求信息,瀏覽器會將請求消息發(fā)送給web服務(wù)器。 瀏覽器不負責數(shù)據(jù)的傳送,僅僅是委托系統(tǒng)操作中的網(wǎng)絡(luò)控制軟件將消息發(fā)送給服務(wù)器。數(shù)據(jù)的傳送搬運機制
由協(xié)議棧和網(wǎng)卡負責。
協(xié)議棧、網(wǎng)卡
協(xié)議棧(網(wǎng)絡(luò)控制軟件)會將瀏覽器接收來的消息打包,然后加上目的地址等控制信息。接下來協(xié)議棧會將包(數(shù)據(jù))交給網(wǎng)卡(負責以太網(wǎng)或無線網(wǎng)絡(luò)通信的硬件),然后,網(wǎng)卡會將包轉(zhuǎn)換為電信號并通過網(wǎng)線發(fā)送出去。接下來,包就進入到網(wǎng)絡(luò)之中了。
集線器、交換機、路由器
由于接入互聯(lián)網(wǎng)形式的不同,以家庭或者公司局域網(wǎng)場景為例,通過ADSL(非對稱數(shù)字用戶線路,一種數(shù)據(jù)傳輸方式)和光纖到戶(FTTH)等寬帶線路接入互聯(lián)網(wǎng)。這種場景下,網(wǎng)卡發(fā)送的包會經(jīng)過交換機等設(shè)備,到達接入互聯(lián)網(wǎng)的路由器。路由器的后面就是互聯(lián)網(wǎng),網(wǎng)絡(luò)運營商會負責將包送到目的地。
接入網(wǎng)、運營商網(wǎng)絡(luò)
數(shù)據(jù)從用來接入互聯(lián)網(wǎng)的路由器出發(fā),進入了互聯(lián)網(wǎng)的內(nèi)部,互聯(lián)網(wǎng)的入口線路稱為接入網(wǎng),一般有電話線、ISDN、ADSL、有線電視、光線、專線等通信線路來接入互聯(lián)網(wǎng)。接入網(wǎng)連接到簽約的網(wǎng)絡(luò)運營商,并接入被成為接入點(Point of Presence, PoP)的設(shè)備。接入點的實體是一臺專為運營商設(shè)計的路由器。網(wǎng)絡(luò)包首先通過接入網(wǎng)被發(fā)送到接入點,然后再從這里被發(fā)送到全國甚至全世界。接入點的后面就是互聯(lián)網(wǎng)的骨干部分了。
在骨干網(wǎng)中存在很多運營商和大量的路由器,這些路由器相互連接,組成一張巨大的網(wǎng),而我們的網(wǎng)絡(luò)包就在其中經(jīng)過若干路由器的接力,最終被發(fā)送到目標Web服務(wù)器上。
防火墻、緩存服務(wù)器
通過骨干網(wǎng)之后,網(wǎng)絡(luò)包最終到達了Web服務(wù)器所在的局域網(wǎng)中。接著,它會遇到防火墻,防火墻會對進入的包進行檢查。大家可以把防火墻想象成門口的保安,他會檢查所有進入的包,看看有沒有危險的包混在里面。檢查完之后,網(wǎng)絡(luò)包接下來可能還會遇到緩存服務(wù)器。網(wǎng)頁數(shù)據(jù)中有一部分是可以重復利用的,這些可以重復利用的數(shù)據(jù)就被保存在緩存服務(wù)器中。如果要訪問的網(wǎng)頁數(shù)據(jù)正好在緩存服務(wù)器中能夠找到,那么就可以不用勞煩Web服務(wù)器,直接從緩存服務(wù)器讀出數(shù)據(jù)。此外,在大型網(wǎng)站中,可能還會配備將消息分布到多臺Web服務(wù)器上的負載均衡器,還有可能會使用通過分布在整個互聯(lián)網(wǎng)中的緩存服務(wù)器來分發(fā)內(nèi)容的服務(wù)。經(jīng)過這些機制之后,網(wǎng)絡(luò)包才會到達Web服務(wù)器。
web服務(wù)器
當網(wǎng)絡(luò)包到達Web服務(wù)器后,數(shù)據(jù)會被解包并還原為原始的請求消息,然后交給Web服務(wù)器程序。和客戶端一樣,這個操作也是由操作系統(tǒng)中的協(xié)議棧(網(wǎng)絡(luò)控制軟件)來完成的。接下來,Web服務(wù)器程序分析請求消息的含義,并按照其中的指示將數(shù)據(jù)裝入響應(yīng)消息中,然后發(fā)回給客戶端。響應(yīng)消息回到客戶端的過程和之前我們介紹的過程正好相反。
當響應(yīng)到達客戶端之后,瀏覽器會從中讀取出網(wǎng)頁的數(shù)據(jù)并在屏幕上顯示出來,這就是我看看到的百度搜索網(wǎng)頁。到這里,訪問Web服務(wù)器的一系列操作就全部完成了,我們的探索之旅也到達了終點。