|
||||
在過去一周左右的時間裡,我試著自己寫一個小型的服務器,因而參考了許多文件、網站,並向朋友們討教,但至今我還是沒有寫出來。我在Java、 Python之間徘徊,因為他們似乎都能滿足我的需求,只是我兩個都不怎麼精通。但在我研究一個服務器是如何運行的時候倒是積累了不少相關的知識,在這裡和大家分享一下。
『在我瀏覽這個頁面之前都發生了些什麼?』——有許多人知道其中的原理,當然也有像我這樣只有模糊概念的人。但幸運的是,這篇網志可以解決許多人的迷惑。
讓我們看看幕後都發生了些什麼:
1、假設你在瀏覽器裡輸入了http://www.yahoo.com這個網址,或者在別的頁面上點擊了這個鏈接;
2、瀏覽器通過分析這個網址得知它使用的是HTTP協議;
3、然後,瀏覽器將這個網址分割成協議、域名、文件名(本例中沒有文件名);
4、瀏覽器連接其默認的域名服務器(DNS),從而將域名轉換為IP地址。域名服務器是一個大型的分布式數據庫,提供了域名到IP地址的轉換功能。瀏覽器的默認域名服務器也許沒有這個域名的IP地址記錄;
5、如果域名服務器沒有與www.yahoo.com對應的IP地址,它就會連接根域名服務器來查詢IP地址;
6、如果找到了IP地址,域名服務器就將該地址傳送給瀏覽器。
最終,瀏覽器會建立與該IP地址之間的連接,雅虎的服務器會接受這個請求並返回雅虎的主頁。如果你還是不理解這個過程,就請參考下面的例子:
還有很多東西需要學習,但以上這些內容已經足以回答『在我瀏覽這個頁面之前都發生了些什麼?』這個問題了。