1. 程式人生 > >瀏覽器和服務器交互解析

瀏覽器和服務器交互解析

翻譯 獲取數據 打開 使用 輸入 安裝數據庫 進行 文件內容 操作數

目前來說,網站頁面主要分為靜態頁面和動態頁面,純靜態頁面組成的網站現在相對比較少見,大型網站一般使用的是動態網站建站技術,還有一部分網站是靜態網頁與動態網頁共存,本文以Apache服務器、php語言為例,詳解動態網站的訪問過程,下面直接切入本文主題。

技術分享圖片

(1)用戶端訪問服務器端的html文件

S1:通過本機配置好的DNS域名服務器地址尋找DNS服務器,將網站URL中的Web主機域名解析為Web服務器所在的Linux操作系統(Apache通常與Linux操作系統組合使用)中對應的IP地址。

S2:通過HTTP協議(超文本傳輸協議)去連接上述IP地址的服務器系統,通過默認80端口(默認的端口是80,也有其他端口,輸入URL時一般不用輸入端口)請求Apache服務器上相應目錄下的html文件(如index.htm)。

S3:Apache服務器收到用戶的訪問請求後,在它管理的文檔目錄中找到並打開相應的html文件(如index.htm),將文件內容響應給客戶端瀏覽器(即用戶)。

S4:瀏覽器收到Web服務器的響應後,接收並下載服務器端的html靜態代碼,然後瀏覽器解讀代碼,最終將網頁呈現出來(由於不同的瀏覽器對於代碼的解讀規則會不一樣,所以不同瀏覽器對於相同的網頁呈現的最終頁面效果會有所差異)。

(2)用戶端訪問服務器端的php文件

S1:該步與上面訪問html靜態網頁是一樣的,通過DNS服務器解析出相應的Web服務器的IP地址。

S2:與上面訪問html靜態頁面相似,不過最後請求的是Apache服務器上相應目錄下的php文件,如index.php。

S3:Apache服務器本身不能處理php動態語言腳本文件,就尋找並委托PHP應用服務器來處理(服務器端事先得安裝PHP應用服務器),Apache服務器將用戶請求訪問的php文件(如index.php)文件交給PHP應用服務器。

S4:PHP應用服務器接收php文件(如index.php),打開並解釋php文件,最終翻譯成html靜態代碼,再將html靜態代碼交還給Apache服務器,Apache服務器將接收到的html靜態代碼輸出到客戶端瀏覽器(即用戶)。

S5:與上面訪問html靜態頁面相同,瀏覽器收到Web服務器的響應後,接收並下載服務器端的html靜態代碼,然後瀏覽器解讀代碼,最終將網頁呈現出來。

(3)用戶端訪問服務器端的MySQL數據庫

如果用戶需要對MySQL數據庫中的數據進行操作,那麽就需要在服務器端安裝數據庫管理軟件MySQL服務器,用來存儲和管理網站數據。由於Apache服務器是無法連接和操作MySQL服務器,所以還需要安裝php應用服務器,這樣Apache服務器就委托php應用服務器去連接和操作數據庫,在對數據庫中的數據進行管理的時候,一般都需要用到結構化查詢語句,即SQL語句。

S1:該步與上面訪問php文件一樣,通過DNS服務器解析出相應的Web服務器的IP地址。

S2:與上面訪問php文件一樣,請求訪問Apache服務器上相應目錄下的php文件。

S3:與上面訪問php文件一樣,PHP應用服務器接收Apache服務器的委托,收到相應的php文件。

S4:PHP應用服務器打開php文件,在php文件中通過對數據庫連接的代碼來連接本機或者網絡上其他機器上的MySQL數據庫,並在php程序中通過執行標準的SQL查詢語句來獲取數據庫中的數據,再通過PHP應用服務器將數據生成html靜態代碼。

S5:瀏覽器收到Web服務器的響應後,接收並下載服務器端的html靜態代碼,然後瀏覽器解讀代碼,最終將網頁呈現出來。

需要註意的是,文中(2)與(3)的區別是,一個訪問了數據庫,另一個沒有訪問數據庫,所以在過程中有點差別。

瀏覽器和服務器交互解析