簡單描述下web 服務(wù)器、PHP晤愧、數(shù)據(jù)庫大莫、瀏覽器是如何實(shí)現(xiàn)動態(tài)網(wǎng)站的?
- 用戶端訪問服務(wù)器端的html文件
- 通過本機(jī)配置好的DNS域名服務(wù)器地址尋找DNS服務(wù)器,將網(wǎng)站URL中的Web主機(jī)域名解析為Web服務(wù)器所在的Linux操作系統(tǒng)(Apache通常與Linux操作系統(tǒng)組合使用)中對應(yīng)的IP地址官份。
- 通過HTTP協(xié)議(超文本傳輸協(xié)議)去連接上述IP地址的服務(wù)器系統(tǒng)只厘,通過默認(rèn)80端口(默認(rèn)的端口是80,也有其他端口贯吓,輸入URL時一般不用輸入端口)請求Apache服務(wù)器上相應(yīng)目錄下的html文件(如index.htm)懈凹。
- Apache服務(wù)器收到用戶的訪問請求后,在它管理的文檔目錄中找到并打開相應(yīng)的html文件(如index.htm)悄谐,將文件內(nèi)容響應(yīng)給客戶端瀏覽器(即用戶)介评。
- 瀏覽器收到Web服務(wù)器的響應(yīng)后,接收并下載服務(wù)器端的html靜態(tài)代碼爬舰,然后瀏覽器解讀代碼们陆,最終將網(wǎng)頁呈現(xiàn)出來(由于不同的瀏覽器對于代碼的解讀規(guī)則會不一樣,所以不同瀏覽器對于相同的網(wǎng)頁呈現(xiàn)的最終頁面效果會有所差異)情屹。
- 用戶端訪問服務(wù)器端的php文件
- 通過DNS服務(wù)器解析出相應(yīng)的Web服務(wù)器的IP地址坪仇。
- 與上面訪問html靜態(tài)頁面相似,不過最后請求的是Apache服務(wù)器上相應(yīng)目錄下的php文件垃你,如index.php椅文。
- Apache服務(wù)器本身不能處理php動態(tài)語言腳本文件喂很,就尋找并委托PHP應(yīng)用服務(wù)器來處理(服務(wù)器端事先得安裝PHP應(yīng)用服務(wù)器),Apache服務(wù)器將用戶請求訪問的php文件(如index.php)文件交給PHP應(yīng)用服務(wù)器皆刺。
- PHP應(yīng)用服務(wù)器接收php文件(如index.php)少辣,打開并解釋php文件,最終翻譯成html靜態(tài)代碼羡蛾,再將html靜態(tài)代碼交還給Apache服務(wù)器漓帅,Apache服務(wù)器將接收到的html靜態(tài)代碼輸出到客戶端瀏覽器(即用戶)。
- 與上面訪問html靜態(tài)頁面相同痴怨,瀏覽器收到Web服務(wù)器的響應(yīng)后忙干,接收并下載服務(wù)器端的html靜態(tài)代碼,然后瀏覽器解讀代碼浪藻,最終將網(wǎng)頁呈現(xiàn)出來捐迫。
- 用戶端訪問服務(wù)器端的MySQL數(shù)據(jù)庫
- 通過DNS服務(wù)器解析出相應(yīng)的Web服務(wù)器的IP地址。
- 與上面訪問php文件一樣爱葵,請求訪問Apache服務(wù)器上相應(yīng)目錄下的php文件弓乙。
- 與上面訪問php文件一樣,PHP應(yīng)用服務(wù)器接收Apache服務(wù)器的委托钧惧,收到相應(yīng)的php文件。
- 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)代碼巧婶。
- 瀏覽器收到Web服務(wù)器的響應(yīng)后乾颁,接收并下載服務(wù)器端的html靜態(tài)代碼,然后瀏覽器解讀代碼艺栈,最終將網(wǎng)頁呈現(xiàn)出來英岭。
常見的 WEB 服務(wù)器有哪些?
- Apache是世界使用排名第一的web服務(wù)器軟件湿右。它可以運(yùn)行在幾乎所有廣泛使用的計(jì)算機(jī)平臺上诅妹。
- IIS是英文名Internet Information Server的縮寫,是微軟公司主推的服務(wù)器毅人;
- Nginx不僅是一個小巧且高效的HTTP服務(wù)器吭狡,也可以做一個高效的負(fù)載均衡反向代理,通過它接受用戶的請求并分發(fā)到多個Mongrel進(jìn)程可以極大提高Rails應(yīng)用的并發(fā)能力丈莺。
- Lighttpt是基于BSD許可的開源WEB服務(wù)器軟件划煮,其根本的目的是提供一個專門針對高性能網(wǎng)站,安全缔俄、快速弛秋、兼容性好并且靈活的web server環(huán)境器躏。具有非常低的內(nèi)存開銷,CPU占用率低蟹略,效能好登失,以及豐富的模塊等特點(diǎn)。- - Lighttpd 是眾多OpenSource輕量級的web server中較為優(yōu)秀的一個科乎。
- Zeus是一個運(yùn)行于Unix下的非常優(yōu)秀的Web Server
- Tomcat是Apache 軟件基金會(Apache Software Foundation)的Jakarta 項(xiàng)目中的一個核心項(xiàng)目壁畸,由Apache、Sun 和其他一些公司及個人共同開發(fā)而成茅茂。特定是 技術(shù)先進(jìn)捏萍、性能穩(wěn)定,而且免費(fèi)空闲。
打開瀏覽器令杈,在地址欄輸入 http://jirengu.com 頁面展現(xiàn)了饑人谷官網(wǎng)的信息,整個過程發(fā)生了什么碴倾?(饑人谷官網(wǎng)后臺語言 php,web服務(wù)器 nginx逗噩,數(shù)據(jù)庫 mysql)
- 輸入URL開始解析域名,不斷向上查找(瀏覽器緩存-系統(tǒng)緩存-路由器緩存-ISP DNS 緩存-頂級域名服務(wù)器)直到找到IP地址跌榔。
- 訪問IP對應(yīng)的服務(wù)器异雁,并向web服務(wù)器發(fā)送http請求
- 服務(wù)器分析用戶請求,查找對應(yīng)文件
- 收到用戶的訪問請求后僧须,在它管理的文檔目錄中找到并打開相應(yīng)的html文件纲刀,將文件內(nèi)容響應(yīng)給客戶端瀏覽器
- 如果處理PHP文件或鏈接數(shù)據(jù)庫,則把相應(yīng)請求委托給PHP應(yīng)用服務(wù)器担平,生成HTML靜態(tài)代碼后再發(fā)送給服務(wù)器
- 瀏覽器接受到服務(wù)器響應(yīng)后下載HTML代碼并進(jìn)行解析示绊,將網(wǎng)頁呈現(xiàn)