這篇文章介紹的內容是關於詳解php和apache的關係和作用,有著一定的參考價值,現在分享給大家,有需要的朋友可以參考一下
本文綜合整理了以下兩篇文章:
詳細介紹php和apache的關係和作用 https://blog.csdn.net/hongweideng/article/details/41723465
以Apache伺服器、php語言為例 詳解動態網站的訪問過程 https://www.cnblogs.com/sunscheung/p/4643281.html
目前來說,網站頁面主要分為靜態頁面和動態網頁面,純靜態頁面組成的網站現在相對比較少見,大型網站一般使用的是動態網站建站技術,還有一部分網站是靜態網頁與動態網頁共存。
本文以Apache伺服器、php語言為例,詳解動態網站的訪問過程,下面直接切入本文主題。
(1)使用者端訪問伺服器端的html檔案
S1:通過本機配置好的DNS網域名稱伺服器地址尋找DNS伺服器,將網站URL中的Web主機網域名稱解析為Web伺服器所在的Linux作業系統(Apache通常與Linux作業系統組合使用)中對應的IP地址。
S2:通過HTTP協議(超文字傳輸通訊協定 (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)的區別是,一個訪問了資料庫,另一個沒有訪問資料庫,所以在過程中有點差別。