動手
mac下配置Apache+PHP+MySQL環境
開啟 Apache.png
index-php.png
進入MySQL.png
問答
1. 簡單描述下 web 服務器、PHP、數據庫、瀏覽器是如何實現動態網站的?
- 用戶通過瀏覽器輸入地址,瀏覽器首先向 DNS 服務器發出請求,DNS 服務器返回網站的實際 IP 地址。
- web 服務器時刻監控來自互聯網的請求,根據請求返回相應的資源。
- 如果需要與服務器動態交互,就得用到腳本語言(例如:PHP)。通過服務器端獲得的腳本語言具有訪問服務器本地資源,數據庫的權限,根據你請求的內容,腳本解析后返回給服務器,服務器再返回給你。
- 數據庫主要用來動態存儲數據,方便查找,插入,查詢,刪除等操作。
- 最后,瀏覽器將返回的資源解析,呈現出用戶所看到的網頁內容。
2. 常見的 WEB 服務器有哪些?
- Nginx,是一個網頁服務器,它能反向代理 HTTP, HTTPS, SMTP, POP3, IMAP 的協議鏈接,以及一個負載均衡器和一個HTTP緩存。是一款面向性能設計的 HTTP 服務器,相較于Apache、lighttpd 具有占有內存少,穩定性高等優勢。維基-Nginx
- Apache,是 Apache 軟件基金會的一個開放源代碼的網頁服務器軟件,可以在大多數電腦操作系統中運行,由于其跨平臺和安全性。被廣泛使用,是最流行的Web服務器軟件之一。它快速、可靠并且可通過簡單的 API 擴充,將 Perl/Python 等解釋器編譯到服務器中。維基-Apache
- IIS(Internet Information Services),是由微軟公司提供的基于運行 Microsoft Windows 的互聯網基本服務。
3. 打開瀏覽器,在地址欄輸入 http://jirengu.com 頁面展現了饑人谷官網的信息,整個過程發生了什么?(饑人谷官網后臺語言 php,web服務器 nginx,數據庫 mysql)
- 通過域名,查找服務器的 IP 地址(DNS 解析)
- 查找瀏覽器緩存(是否有緩存 DNS 記錄),有的話,直接使用;
- 查找系統本地的 host 文件是否有這個域名的映射關系
- 查找路由器緩存;
- 查找 ISP 緩存;
- 從頂級域名服務器的根域名服務器查找。
- 瀏覽器得到 IP 地址后,打包 HTTP 請求
- 通過 TCP 協議與 ngnix 服務器創建連接(三次握手),然后瀏覽器向服務器發送請求
- ngnix 服務器接受 HTTP 請求,Web Server 進行相應的初步處理,使用服務器腳本( PHP )生成頁面
- 服務器腳本(利用 Web Framework)調用本地和客戶端傳來的數據,生成頁面
- Web Server 將生成的頁面作為 HTTP 響應的 body,根據不同的處理結果生成 HTTP header,發回給客戶端
- 客戶端(瀏覽器)接收到 HTTP 響應后(通常第一個請求得到的 HTTP 響應的 body 里是 HTML 代碼),開始對 HTML 代碼進行解析
- 解析過程中,如果需要引用服務器上的資源(額外的 CSS 、JS 代碼、圖片、音視頻等),再向 Web Server 發送請求,Web Server 找到對應的資源再發送回來
- 具體解析渲染過程如下:
- 解析 HTML 生成 DOM 樹
- 解析 CSS 生成 CSDOM 樹
- 組合 DOM 和 CSDOM 生成渲染樹
- 遇到 JavaScript 解析 JavaScript,阻塞后面的解析和渲染
- 最后進行頁面繪制
參考: