動(dòng)手
學(xué)習(xí) xampp或者wamp 的簡(jiǎn)單配置使用,在本地啟動(dòng) web 服務(wù)器,通過瀏覽器訪問,通過瀏覽器打開本地 webserver 下的 php 文件,截圖展示。



問題
1. 簡(jiǎn)單描述下web 服務(wù)器、PHP、數(shù)據(jù)庫、瀏覽器是如何實(shí)現(xiàn)動(dòng)態(tài)網(wǎng)站的?
- 瀏覽器訪問服務(wù)器端的html文件:
通過DNS服務(wù)器解析出相應(yīng)的Web服務(wù)器的IP地址。
通過HTTP協(xié)議連接上述的服務(wù)器系統(tǒng),請(qǐng)求相應(yīng)目錄下的html文件。
服務(wù)器接收到請(qǐng)求后,找到并打開相應(yīng)的html文件,將文件內(nèi)容響應(yīng)給客戶端瀏覽器。
瀏覽器收到響應(yīng)后,接收并下載服務(wù)器端的靜態(tài)html代碼,通過解析、渲染,呈現(xiàn)出網(wǎng)頁的內(nèi)容。 - 瀏覽器訪問服務(wù)端的php文件:
與訪問html靜態(tài)網(wǎng)頁一樣,通過DNS服務(wù)器解析出相應(yīng)的Web服務(wù)器的IP地址。
與請(qǐng)求html靜態(tài)頁面類似,不過最終請(qǐng)求的是php文件。
由于Apache服務(wù)器本身不能處理php動(dòng)態(tài)語言腳本,所以Apache服務(wù)器將用戶請(qǐng)求訪問的php文件交給PHP應(yīng)用服務(wù)器。
PHP應(yīng)用服務(wù)器接收php文件,打開并解釋php文件,翻譯成html靜態(tài)代碼,再將這些html靜態(tài)代碼返回給Apache服務(wù)器,服務(wù)器接收到html靜態(tài)代碼后返回給瀏覽器。
瀏覽器接收到服務(wù)器的響應(yīng)后,接收下載html靜態(tài)代碼,解析、渲染呈現(xiàn)頁面。 - 瀏覽器訪問服務(wù)端的MySQL數(shù)據(jù)庫部分:
通過DNS服務(wù)器解析出相應(yīng)的Web服務(wù)器的IP地址。
與上面訪問php文件一樣,請(qǐng)求訪問Apache服務(wù)器上相應(yīng)目錄下的php文件。
與上面訪問php文件一樣,PHP應(yīng)用服務(wù)器接收到相應(yīng)的php文件。
PHP應(yīng)用服務(wù)器打開php文件,在php文件中通過執(zhí)行標(biāo)準(zhǔn)的SQL查詢語句來獲取數(shù)據(jù)庫中的數(shù)據(jù),在通過PHP應(yīng)用服務(wù)器生成html靜態(tài)代碼返回給服務(wù)器,服務(wù)器再返回給瀏覽器。
瀏覽器接收到服務(wù)器的響應(yīng)后,接收下載html靜態(tài)代碼,解析、渲染呈現(xiàn)出頁面。
2. 常見的 WEB 服務(wù)器有哪些?
- IIS:英文InternetInformationServer的縮寫。它是微軟公司主推的服務(wù)器。IIS的特點(diǎn)具有:安全性、強(qiáng)大、靈活。
- Tomcat:由Apache、Sun和其他一些公司及個(gè)人共同開發(fā)而成。Tomcat技術(shù)先進(jìn)、性能穩(wěn)定,而且免費(fèi),因而深受Java愛好者的喜愛并得到了部分軟件開發(fā)者的認(rèn)可,成為目前比較流行的Web應(yīng)用服務(wù)器。
- Zeus:是一個(gè)運(yùn)行于Unix下的非誠(chéng)優(yōu)秀的Web服務(wù)器,據(jù)說性能超過Apache,是效率最高的Web服務(wù)器之一。
- Nginx:不僅是一個(gè)小巧且高效的HTTP服務(wù)器,也可以做一個(gè)高效的負(fù)載均衡反向代理,通過它接受用戶的請(qǐng)求并分發(fā)到多個(gè)
Mongrel進(jìn)程可以極大提高Rails應(yīng)用的并發(fā)能力。 - Apache:是世界排名第一的Web服務(wù)器軟件。它幾乎可以運(yùn)行在所有的計(jì)算機(jī)平臺(tái)上。由于Apache是開源免費(fèi)的,因此有很多人參與到新功能的開發(fā)設(shè)計(jì),不斷對(duì)其 進(jìn)行完善。Apache的特點(diǎn)是簡(jiǎn)單、速度快、性能穩(wěn)定,并可做代理服務(wù)器來使用。
- Lighttpd:它是由得國(guó)人JanKneschke領(lǐng)導(dǎo)開發(fā)的,基于BSD許可的開源WEB服務(wù)器軟件,其根本的目的是提供一個(gè)專門針對(duì)高性能網(wǎng)站,安全、快速、兼容性好并且靈活的webserver環(huán)境。具有非常低的內(nèi)存開銷,CPU占用率低,效能好,以及豐富的模塊等特點(diǎn)。支持FastCGI,CGI,Auth,輸出壓縮(outputcompress),URL重寫,Alias等重要功能。
3. 打開瀏覽器,在地址欄輸入 http://jirengu.com 頁面展現(xiàn)了饑人谷官網(wǎng)的信息,整個(gè)過程發(fā)生了什么?(饑人谷官網(wǎng)后臺(tái)語言 php,web服務(wù)器 nginx,數(shù)據(jù)庫 mysql)
- 瀏覽器查找域名相對(duì)應(yīng)的IP地址,當(dāng)然瀏覽器會(huì)先在自身DNS緩存記錄中查找有無該地址的映射。如果沒有找到,便會(huì)去系統(tǒng)緩存中尋找有無這個(gè)記錄,沒有的話,再到路由器中查找,還沒有的話再到ISP服務(wù)商的DNS緩存中查找,最后沒有則將從頂級(jí)域名服務(wù)器的根服務(wù)器開始遞歸查詢,一層一層的查找DNS,知道找到對(duì)應(yīng)的IP。

-
瀏覽器將請(qǐng)求發(fā)給Nginx,Nginx響應(yīng)之后根據(jù)用戶需求,通過PHP應(yīng)用處理程序進(jìn)行處理,若設(shè)計(jì)到用戶登錄及數(shù)據(jù)的增刪改查,PHP會(huì)與數(shù)據(jù)庫MySQL進(jìn)行交互,最后服務(wù)器會(huì)返回一個(gè)靜態(tài)的html文檔。
服務(wù)器將靜態(tài)的HTML文檔發(fā)送到客戶端(瀏覽器)

- 瀏覽器收到服務(wù)器響應(yīng)后,開始下載HTML代碼,通過解析和渲染,呈現(xiàn)出網(wǎng)頁的頁面。
- 瀏覽器的下載順序和渲染順序都是從上到下,下載和渲染同時(shí)進(jìn)行
- 解析html代碼,生成DOM樹。
- 解析html中的CSS生成CSSOM樹,把DOM CSSOM組合成渲染樹
- 在渲染樹的基礎(chǔ)上布局,計(jì)算每個(gè)節(jié)點(diǎn)的幾何結(jié)構(gòu),把每個(gè)節(jié)點(diǎn)繪制到屏幕上。
- 解析JavaScript,解析到的時(shí)候執(zhí)行。
- 遇到關(guān)聯(lián)資源圖片、視頻等元素時(shí)需要另外并行下載,同一域名下并行下載數(shù)量有限,通常是把資源放置在不同的域名下。
本文版權(quán)歸本人和饑人谷所有,轉(zhuǎn)載請(qǐng)注明來源。
