簡單描述下web 服務器、PHP、數據庫、瀏覽器是如何實現動態網站的?
- 首先在瀏覽器中輸入域名
- 瀏覽器通過DNS查找域名的IP地址,優先通過緩存查找,然后是遞歸查詢
- 瀏覽器給web服務器發送一個HTTP請求、包含服務器需要的信息(get/post、域名、cookie)
- 通過TCP協議瀏覽器與服務器產生聯系(三次握手)
- Web服務器將用戶請求的php文件交給php應用服務器處理(Web服務器本身不能處理php動態語言文件);
- php應用服務器接收、打開并解釋php文件,在php文件中通過對數據庫的連接代碼連接本機或其他機器上的MySQL數據庫,在php中執行SQL查詢語句獲得數據,php應用服務器將獲得的數據生成html靜態代碼;
- php應用服務器將生成的html靜態代碼返回Web服務器,Web服務器通過TCP協議將html
靜態代碼傳給瀏覽器; - 瀏覽器解析接收到的代碼,開始渲染頁面并呈獻給用戶。
頁面運作流程
TCP的三次握手與四次分手
動態網站的訪問過程
2.常見的 WEB 服務器有哪些?
目前最主流的三個Web服務器是
- Apache
Apache是世界使用排名第一的Web服務器軟件。它幾乎可以運行在所有的計算機平臺上。由于Apache是開源免費的,因此有很多人參與到新功能的開發設計,不斷對其進行完善。Apache的特點是簡單、速度快、性能穩定,并可做代理服務器來使用。 - Nginx
Nginx不僅是一個小巧且高效的HTTP服務器,也可以做一個高效的負載均衡反向代理,通過它接受用戶的請求并分發到多個Mongrel進程可以極大提高Rails應用的并發能力。 - IIS
IIS(Internet信息服務)英文InternetInformationServer的縮寫。它是微軟公司主推的服務器。IIS的特點具有:安全性,強大,靈活。
3.打開瀏覽器,在地址欄輸入 http://jirengu.com 頁面展現了饑人谷官網的信息,整個過程發生了什么?(饑人谷官網后臺語言 php,web服務器 nginx,數據庫 mysql)
- 通過DNS服務器將域名轉換成對應的IP地址
- 瀏覽器與服務器之間根據TCP協議構成連接
- 請求訪問Nginx服務器上相應目錄下的php文件。
- Nginx服務器本身不能處理php動態語言腳本文件,就尋找并委托PHP應用服務器來處理
- PHP應用服務器打開php文件,在php文件中通過對數據庫連接的代碼來連接本機或者網絡上其他機器上的MySQL數據庫,并在php程序中通過執行標準的SQL查詢語句來獲取數據庫中的數據,再通過PHP應用服務器將數據生成html靜態代碼,然后傳遞給Nginx服務器
- 瀏覽器收到Web服務器的響應后,接收并下載服務器端的html靜態代碼,然后瀏覽器解讀代碼,最終將網頁呈現出來。
- 瀏覽器拿到請求,進行頁面渲染
- DOM樹,CSS樹,JavaScript
參考
創建服務器