簡單描述下web 服務(wù)器策泣、PHP膨俐、數(shù)據(jù)庫沙郭、瀏覽器是如何實現(xiàn)動態(tài)網(wǎng)站的?
- 首先在瀏覽器中輸入域名
- 瀏覽器通過DNS查找域名的IP地址,優(yōu)先通過緩存查找嗡靡,然后是遞歸查詢
- 瀏覽器給web服務(wù)器發(fā)送一個HTTP請求跺撼、包含服務(wù)器需要的信息(get/post、域名讨彼、cookie)
- 通過TCP協(xié)議瀏覽器與服務(wù)器產(chǎn)生聯(lián)系(三次握手)
- Web服務(wù)器將用戶請求的php文件交給php應(yīng)用服務(wù)器處理(Web服務(wù)器本身不能處理php動態(tài)語言文件)歉井;
- php應(yīng)用服務(wù)器接收、打開并解釋php文件哈误,在php文件中通過對數(shù)據(jù)庫的連接代碼連接本機(jī)或其他機(jī)器上的MySQL數(shù)據(jù)庫哩至,在php中執(zhí)行SQL查詢語句獲得數(shù)據(jù),php應(yīng)用服務(wù)器將獲得的數(shù)據(jù)生成html靜態(tài)代碼黑滴;
- php應(yīng)用服務(wù)器將生成的html靜態(tài)代碼返回Web服務(wù)器憨募,Web服務(wù)器通過TCP協(xié)議將html
靜態(tài)代碼傳給瀏覽器; - 瀏覽器解析接收到的代碼袁辈,開始渲染頁面并呈獻(xiàn)給用戶菜谣。
頁面運(yùn)作流程
TCP的三次握手與四次分手
動態(tài)網(wǎng)站的訪問過程
2.常見的 WEB 服務(wù)器有哪些?
目前最主流的三個Web服務(wù)器是
- Apache
Apache是世界使用排名第一的Web服務(wù)器軟件晚缩。它幾乎可以運(yùn)行在所有的計算機(jī)平臺上尾膊。由于Apache是開源免費的,因此有很多人參與到新功能的開發(fā)設(shè)計荞彼,不斷對其進(jìn)行完善冈敛。Apache的特點是簡單、速度快鸣皂、性能穩(wěn)定抓谴,并可做代理服務(wù)器來使用。 - Nginx
Nginx不僅是一個小巧且高效的HTTP服務(wù)器寞缝,也可以做一個高效的負(fù)載均衡反向代理癌压,通過它接受用戶的請求并分發(fā)到多個Mongrel進(jìn)程可以極大提高Rails應(yīng)用的并發(fā)能力。 - IIS
IIS(Internet信息服務(wù))英文InternetInformationServer的縮寫荆陆。它是微軟公司主推的服務(wù)器滩届。IIS的特點具有:安全性,強(qiáng)大被啼,靈活帜消。
3.打開瀏覽器,在地址欄輸入 http://jirengu.com 頁面展現(xiàn)了饑人谷官網(wǎng)的信息浓体,整個過程發(fā)生了什么泡挺?(饑人谷官網(wǎng)后臺語言 php,web服務(wù)器 nginx,數(shù)據(jù)庫 mysql)
- 通過DNS服務(wù)器將域名轉(zhuǎn)換成對應(yīng)的IP地址
- 瀏覽器與服務(wù)器之間根據(jù)TCP協(xié)議構(gòu)成連接
- 請求訪問Nginx服務(wù)器上相應(yīng)目錄下的php文件命浴。
- Nginx服務(wù)器本身不能處理php動態(tài)語言腳本文件娄猫,就尋找并委托PHP應(yīng)用服務(wù)器來處理
- PHP應(yīng)用服務(wù)器打開php文件,在php文件中通過對數(shù)據(jù)庫連接的代碼來連接本機(jī)或者網(wǎng)絡(luò)上其他機(jī)器上的MySQL數(shù)據(jù)庫,并在php程序中通過執(zhí)行標(biāo)準(zhǔn)的SQL查詢語句來獲取數(shù)據(jù)庫中的數(shù)據(jù)稚新,再通過PHP應(yīng)用服務(wù)器將數(shù)據(jù)生成html靜態(tài)代碼勘伺,然后傳遞給Nginx服務(wù)器
- 瀏覽器收到Web服務(wù)器的響應(yīng)后,接收并下載服務(wù)器端的html靜態(tài)代碼褂删,然后瀏覽器解讀代碼飞醉,最終將網(wǎng)頁呈現(xiàn)出來。
- 瀏覽器拿到請求屯阀,進(jìn)行頁面渲染
- DOM樹缅帘,CSS樹,JavaScript
參考
創(chuàng)建服務(wù)器