web 服務(wù)器、PHP、數(shù)據(jù)庫、瀏覽器是如何實現(xiàn)動態(tài)網(wǎng)站的
- 發(fā)送請求:瀏覽器根據(jù)用戶輸入的域名,運(yùn)用DNS緩存或請求本地DNS服務(wù)器解析等獲得對應(yīng)IP地址,使用HTTP協(xié)議發(fā)送請求報文(含請求內(nèi)容、瀏覽器信息、本地緩存、cookie等)
-
返回數(shù)據(jù):web服務(wù)器接收到請求,會去尋找對應(yīng)文件,找到后會反饋給瀏覽器說請求的內(nèi)容已經(jīng)找到。
- html文件:web服務(wù)器在自己目錄下尋找,找到后會直接反饋給瀏覽器;
- PHP文件:web服務(wù)器會現(xiàn)在自己目錄下找PHP文件,找到后它會發(fā)給PHP服務(wù)器幫忙解析,PHP服務(wù)器會將PHP文件翻譯成html代碼返回給web服務(wù)器;
- 數(shù)據(jù)操作:如果請求中涉及到數(shù)據(jù)庫的操作的話,同樣,web服務(wù)器將PHP文件發(fā)給PHP服務(wù)器,PHP服務(wù)器對文件中需要數(shù)據(jù)庫信息的部分請求MySQL數(shù)據(jù)庫提供對應(yīng)數(shù)據(jù),之后PHP服務(wù)器再將反饋的數(shù)據(jù)翻譯成html代碼發(fā)送給web服務(wù)器。
-
渲染呈現(xiàn):瀏覽器根據(jù)web服務(wù)器的反饋,下載數(shù)據(jù),進(jìn)行解析渲染,并將最終頁面呈現(xiàn)給用戶。
0_1461902623997_用戶 服務(wù)器.png
常見的 WEB 服務(wù)器
- Apache服務(wù)器:A pache(哈哈 一個補(bǔ)丁 我乍一聽還以為是直升機(jī))使用廣泛,開放源代碼,支持多個平臺,相比其他服務(wù)器占的內(nèi)存較大,是重量級產(chǎn)品。
- Microsoft IIS 服務(wù)器:微軟的,包括Web服務(wù)器、FTP服務(wù)器、NNTP服務(wù)器和SMTP服務(wù)器,要使用它需要購買對應(yīng)的商業(yè)window server操作系統(tǒng)。
- Nginx服務(wù)器:(發(fā)音同engine x)俄羅斯的一個站點開發(fā)的,相比于Apache服務(wù)器,Nginx占用內(nèi)存小且較穩(wěn)定。
-
Tomcat服務(wù)器:(哈哈 湯姆貓服務(wù)器)也是開放源代碼的,運(yùn)行servlet和JSP Web應(yīng)用軟件基于Java,比絕大多數(shù)的商業(yè)用的軟件服務(wù)器要好。
0_1461902581006_upload-a22468fe-6f25-47a4-95d4-943af7da69f3
打開瀏覽器,在地址欄輸入url 到頁面展現(xiàn),整個過程發(fā)生了什么?
- 用戶輸入網(wǎng)址:用戶輸入網(wǎng)址,包含協(xié)議和域名
- 瀏覽器獲得IP地址:瀏覽器先找自身緩存看是否有記錄,沒有的話再找操作系統(tǒng)緩存,再沒有就請求本地DNS服務(wù)器幫忙,本地DNS再找不到再一層層往上;最終,瀏覽器獲得了對應(yīng)的IP地址。
- 瀏覽器發(fā)送請求:瀏覽器根據(jù)HTTP協(xié)議,給對應(yīng)IP地址的主機(jī)發(fā)送請求報文,默認(rèn)端口為80,報文含請求內(nèi)容、瀏覽器信息、本地緩存、cookie等等信息。
- web服務(wù)器接收請求、尋找文件:Nginx服務(wù)器接收到請求,在自己目錄下開始尋找對應(yīng)php文件
- PHP服務(wù)器翻譯php文件:找到后將文件發(fā)給PHP服務(wù)器,PHP服務(wù)器打開php文件進(jìn)行翻譯,如果碰到需要數(shù)據(jù)庫對應(yīng)數(shù)據(jù)的部分,PHP服務(wù)器就用標(biāo)準(zhǔn)的SQL查詢語句來獲取數(shù)據(jù)庫中的數(shù)據(jù)。
- MySQL數(shù)據(jù)庫提供數(shù)據(jù):接收PHP服務(wù)器指令,會反饋對應(yīng)數(shù)據(jù)給PHP服務(wù)器。
- PHP服務(wù)器完成翻譯發(fā)給web服務(wù)器:PHP服務(wù)器將php文件翻譯生成靜態(tài)html代碼,并發(fā)送給web服務(wù)器。
- web服務(wù)器接收并通知瀏覽器:web服務(wù)器接收PHP服務(wù)器的html代碼,并反饋給瀏覽器讓瀏覽器開始下載。
- 瀏覽器下載:瀏覽器收到web服務(wù)器通知,開始下載請求的所有資源。
- 瀏覽器解析渲染:瀏覽器邊下載邊解析,并開始生成html樹和css樹,組合二者并開始渲染頁面。
- 瀏覽器呈現(xiàn)頁面:頁面渲染完成,瀏覽器將饑人谷官網(wǎng)繪制出呈現(xiàn)給用戶。
