今天有人問了這個有趣的面試問題。網絡瀏覽器如何請求並接收網頁?
詳細解釋客戶端機器從服務器請求文件(如file.php),然後接收所需的文件及其必要的JS/CSS /圖像/視頻文件並顯示它們的過程在客戶端的瀏覽器屏幕上。
這是我知道的,什麼我也說:
因此,一個請求被髮送,則服務器發現被請求的file.php文件,因爲它有一個。 php擴展,它首先使用PHP引擎來解析文件內部的任何PHP代碼,然後一旦完成,它就會向客戶端機器輸出生成的file.php文件(作爲響應)。然後瀏覽器接受該響應並分析HTML和必要的JS和CSS代碼,然後將其顯示給瀏覽器。
我的答案是非常基本的,並不像它應該的那麼詳細。我想到了我的迴應,並與新的問題上來:
什麼,從字面上看,是一個「要求」?它基本上只是發送到服務器的文本頭文件嗎?
「響應」怎麼樣?響應本身是否被解析的file.php文件被髮送回客戶端機器?
如果file.php文件包含對script.js文件和style.css文件的引用會怎麼樣?這些文件在哪個階段被送回客戶端機器?他們是作爲單獨的標題進入還是什麼?
上面在我的回答中,當我說「...因爲它有一個.php擴展名時,我不確定是否正確,它首先使用PHP引擎來解析文件中的任何PHP代碼」。這真的是服務器解析文件內部代碼的原因,還是服務器默認掃描所有類型的文件以檢查它們可能包含的任何PHP代碼?
完美的「迴應」(雙關意圖)。非常感謝你的詳細和直接的解釋。 – DecafJava 2011-05-15 08:48:10