(1)用戶(hù)端訪問(wèn)服務(wù)器端的html文件
S1:通過(guò)本機(jī)配置好的DNS域名服務(wù)器地址尋找DNS服務(wù)器,將網(wǎng)站URL中的Web主機(jī)域名解析為Web服務(wù)器所在的Linux操作系統(tǒng)(Apache通常與Linux操作系統(tǒng)組合使用)中對(duì)應(yīng)的IP地址。
S2:通過(guò)HTTP協(xié)議(超文本傳輸協(xié)議)去連接上述IP地址的服務(wù)器系統(tǒng),通過(guò)默認(rèn)80端口(默認(rèn)的端口是80,也有其他端口,輸入U(xiǎn)RL時(shí)一般不用輸入端口)請(qǐng)求Apache服務(wù)器上相應(yīng)目錄下的html文件(如index.htm)。
S3:Apache服務(wù)器收到用戶(hù)的訪問(wèn)請(qǐng)求后,在它管理的文檔目錄中找到并打開(kāi)相應(yīng)的html文件(如index.htm),將文件內(nèi)容響應(yīng)給客戶(hù)端瀏覽器(即用戶(hù))。
S4:瀏覽器收到Web服務(wù)器的響應(yīng)后,接收并下載服務(wù)器端的html靜態(tài)代碼,然后瀏覽器解讀代碼,最終將網(wǎng)頁(yè)呈現(xiàn)出來(lái)(由于不同的瀏覽器對(duì)于代碼的解讀規(guī)則會(huì)不一樣,所以不同瀏覽器對(duì)于相同的網(wǎng)頁(yè)呈現(xiàn)的最終頁(yè)面效果會(huì)有所差異)。
(2)用戶(hù)端訪問(wèn)服務(wù)器端的php文件
S1:該步與上面訪問(wèn)html靜態(tài)網(wǎng)頁(yè)是一樣的,通過(guò)DNS服務(wù)器解析出相應(yīng)的Web服務(wù)器的IP地址。
S2:與上面訪問(wèn)html靜態(tài)頁(yè)面相似,不過(guò)最后請(qǐng)求的是Apache服務(wù)器上相應(yīng)目錄下的php文件,如index.php。
S3:Apache服務(wù)器本身不能處理php動(dòng)態(tài)語(yǔ)言腳本文件,就尋找并委托PHP應(yīng)用服務(wù)器來(lái)處理(服務(wù)器端事先得安裝PHP應(yīng)用服務(wù)器),Apache服務(wù)器將用戶(hù)請(qǐng)求訪問(wèn)的php文件(如index.php)文件交給PHP應(yīng)用服務(wù)器。
S4:PHP應(yīng)用服務(wù)器接收php文件(如index.php),打開(kāi)并解釋php文件,最終翻譯成html靜態(tài)代碼,再將html靜態(tài)代碼交還給Apache服務(wù)器,Apache服務(wù)器將接收到的html靜態(tài)代碼輸出到客戶(hù)端瀏覽器(即用戶(hù))。
S5:與上面訪問(wèn)html靜態(tài)頁(yè)面相同,瀏覽器收到Web服務(wù)器的響應(yīng)后,接收并下載服務(wù)器端的html靜態(tài)代碼,然后瀏覽器解讀代碼,最終將網(wǎng)頁(yè)呈現(xiàn)出來(lái)。
(3)用戶(hù)端訪問(wèn)服務(wù)器端的MySQL數(shù)據(jù)庫(kù)
如果用戶(hù)需要對(duì)MySQL數(shù)據(jù)庫(kù)中的數(shù)據(jù)進(jìn)行操作,那么就需要在服務(wù)器端安裝數(shù)據(jù)庫(kù)管理軟件MySQL服務(wù)器,用來(lái)存儲(chǔ)和管理網(wǎng)站數(shù)據(jù)。由于 Apache服務(wù)器是無(wú)法連接和操作MySQL服務(wù)器,所以還需要安裝php應(yīng)用服務(wù)器,這樣Apache服務(wù)器就委托php應(yīng)用服務(wù)器去連接和操作數(shù)據(jù)庫(kù),在對(duì)數(shù)據(jù)庫(kù)中的數(shù)據(jù)進(jìn)行管理的時(shí)候,一般都需要用到結(jié)構(gòu)化查詢(xún)語(yǔ)句,即SQL語(yǔ)句。
S1:該步與上面訪問(wèn)php文件一樣,通過(guò)DNS服務(wù)器解析出相應(yīng)的Web服務(wù)器的IP地址。
S2:與上面訪問(wèn)php文件一樣,請(qǐng)求訪問(wèn)Apache服務(wù)器上相應(yīng)目錄下的php文件。
S3:與上面訪問(wèn)php文件一樣,PHP應(yīng)用服務(wù)器接收Apache服務(wù)器的委托,收到相應(yīng)的php文件。
S4:PHP應(yīng)用服務(wù)器打開(kāi)php文件,在php文件中通過(guò)對(duì)數(shù)據(jù)庫(kù)連接的代碼來(lái)連接本機(jī)或者網(wǎng)絡(luò)上其他機(jī)器上的MySQL數(shù)據(jù)庫(kù),并在php程序中通過(guò)執(zhí)行標(biāo)準(zhǔn)的SQL查詢(xún)語(yǔ)句來(lái)獲取數(shù)據(jù)庫(kù)中的數(shù)據(jù),再通過(guò)PHP應(yīng)用服務(wù)器將數(shù)據(jù)生成html靜態(tài)代碼。
S5:瀏覽器收到Web服務(wù)器的響應(yīng)后,接收并下載服務(wù)器端的html靜態(tài)代碼,然后瀏覽器解讀代碼,最終將網(wǎng)頁(yè)呈現(xiàn)出來(lái)。
需要注意的是,文中(2)與(3)的區(qū)別是,一個(gè)訪問(wèn)了數(shù)據(jù)庫(kù),另一個(gè)沒(méi)有訪問(wèn)數(shù)據(jù)庫(kù),所以在過(guò)程中有點(diǎn)差別。
原文地址:http://server.zol.com.cn/354/3540917.html