簡(jiǎn)單描述下web 服務(wù)器、PHP、數(shù)據(jù)庫(kù)、瀏覽器是如何實(shí)現(xiàn)動(dòng)態(tài)網(wǎng)站的?
- 首先在瀏覽器中輸入域名
- 瀏覽器通過(guò)DNS查找域名的IP地址,優(yōu)先通過(guò)緩存查找,然后是遞歸查詢
- 瀏覽器給web服務(wù)器發(fā)送一個(gè)HTTP請(qǐng)求、包含服務(wù)器需要的信息(get/post、域名、cookie)
- 通過(guò)TCP協(xié)議瀏覽器與服務(wù)器產(chǎn)生聯(lián)系(三次握手)
- Web服務(wù)器將用戶請(qǐng)求的php文件交給php應(yīng)用服務(wù)器處理(Web服務(wù)器本身不能處理php動(dòng)態(tài)語(yǔ)言文件);
- php應(yīng)用服務(wù)器接收、打開并解釋php文件,在php文件中通過(guò)對(duì)數(shù)據(jù)庫(kù)的連接代碼連接本機(jī)或其他機(jī)器上的MySQL數(shù)據(jù)庫(kù),在php中執(zhí)行SQL查詢語(yǔ)句獲得數(shù)據(jù),php應(yīng)用服務(wù)器將獲得的數(shù)據(jù)生成html靜態(tài)代碼;
- php應(yīng)用服務(wù)器將生成的html靜態(tài)代碼返回Web服務(wù)器,Web服務(wù)器通過(guò)TCP協(xié)議將html
靜態(tài)代碼傳給瀏覽器; - 瀏覽器解析接收到的代碼,開始渲染頁(yè)面并呈獻(xiàn)給用戶。
頁(yè)面運(yùn)作流程
TCP的三次握手與四次分手
動(dòng)態(tài)網(wǎng)站的訪問(wèn)過(guò)程
2.常見的 WEB 服務(wù)器有哪些?
目前最主流的三個(gè)Web服務(wù)器是
- Apache
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ù)器來(lái)使用。 - Nginx
Nginx不僅是一個(gè)小巧且高效的HTTP服務(wù)器,也可以做一個(gè)高效的負(fù)載均衡反向代理,通過(guò)它接受用戶的請(qǐng)求并分發(fā)到多個(gè)Mongrel進(jìn)程可以極大提高Rails應(yīng)用的并發(fā)能力。 - IIS
IIS(Internet信息服務(wù))英文InternetInformationServer的縮寫。它是微軟公司主推的服務(wù)器。IIS的特點(diǎn)具有:安全性,強(qiáng)大,靈活。
3.打開瀏覽器,在地址欄輸入 http://jirengu.com 頁(yè)面展現(xiàn)了饑人谷官網(wǎng)的信息,整個(gè)過(guò)程發(fā)生了什么?(饑人谷官網(wǎng)后臺(tái)語(yǔ)言 php,web服務(wù)器 nginx,數(shù)據(jù)庫(kù) mysql)
- 通過(guò)DNS服務(wù)器將域名轉(zhuǎn)換成對(duì)應(yīng)的IP地址
- 瀏覽器與服務(wù)器之間根據(jù)TCP協(xié)議構(gòu)成連接
- 請(qǐng)求訪問(wèn)Nginx服務(wù)器上相應(yīng)目錄下的php文件。
- Nginx服務(wù)器本身不能處理php動(dòng)態(tài)語(yǔ)言腳本文件,就尋找并委托PHP應(yīng)用服務(wù)器來(lái)處理
- PHP應(yīng)用服務(wù)器打開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查詢語(yǔ)句來(lái)獲取數(shù)據(jù)庫(kù)中的數(shù)據(jù),再通過(guò)PHP應(yīng)用服務(wù)器將數(shù)據(jù)生成html靜態(tài)代碼,然后傳遞給Nginx服務(wù)器
- 瀏覽器收到Web服務(wù)器的響應(yīng)后,接收并下載服務(wù)器端的html靜態(tài)代碼,然后瀏覽器解讀代碼,最終將網(wǎng)頁(yè)呈現(xiàn)出來(lái)。
- 瀏覽器拿到請(qǐng)求,進(jìn)行頁(yè)面渲染
- DOM樹,CSS樹,JavaScript
參考
創(chuàng)建服務(wù)器

