1.簡單描述下web 服務器、PHP、數據庫诀诊、瀏覽器是如何實現動態(tài)網站的?
-
(客戶輸入URL,DNS解析URL得出IP地址阅嘶,根據IP地址找出對應服務器)
用戶在客戶端(即是瀏覽器)的地址欄輸入目的資源的URL(統(tǒng)一資源定位符)属瓣,然后客戶機會根據給出URL通過DNS解析器解析成IP地址,然后客戶機根據IP地址尋找對應的服務器讯柔。 - (客戶機通過TCP/IP協(xié)議建立到web服務器的TCP鏈接)
- (客戶機向web服務器發(fā)送HTTP請求報文抡蛙,請求服務器里資源的資源文檔)
- (web服務器接收到客戶機的HTTP請求報文,然后向客戶機發(fā)出HTTP響應報文)
(1). 如果請求的是HTML文檔魂迄,web服務器會將對應目錄下相應的HTML文檔打開粗截,然后將文檔的響應內容發(fā)送給客戶機。
(2).如果請求的是PHP文件极祸,那么web服務器自身是不能處理PHP動態(tài)語言腳本文件的慈格,然后就會尋找并委托php應用服務器,php應用服務器會將web服務器請求的php文件解析成HTML靜態(tài)代碼遥金,然后將HTML靜態(tài)代碼發(fā)送給web服務器,最后web服務器會將HTML靜態(tài)代碼發(fā)送客戶機蒜田。
(3).如果請求的資源是訪問數據庫稿械,則web服務器會通過php應用服務器去訪問數據庫。
詳細:php應用服務器打開php文件冲粤,然后在php通過對數據庫鏈接的代碼來鏈接本機或者其他機器上的數據庫美莫,然后同標準SQL標準語言去處理和訪問數據庫页眯,然后通過php應用服務器將php文件解析成靜態(tài)HTML代碼,最后發(fā)送給客戶機厢呵。
-
(客戶機解析HTML靜態(tài)文檔)
客戶機在瀏覽器上解析HTML文檔窝撵,并在屏幕上渲染畫面結果,最終實現頁面在客戶機的呈現襟铭。 -
(客戶機與服務器斷開鏈接)
客戶機與web服務器斷開鏈接碌奉,web服務器等待下次請求。
2.常見的 WEB 服務器有哪些寒砖?
<li>Apache服務器
Apache HTTP Server(簡稱Apache)是Apache軟件基金會的一個開放源代碼的網頁服務器軟件赐劣,可以在大多數電腦操作系統(tǒng)中運行,由于其跨平臺和安全性被廣泛使用哩都,是最流行的Web服務器軟件之一魁兼。它快速可靠,并且可以通過簡單API擴充漠嵌,將Python/Perl等解析器編譯到服務器中咐汞。
<li>Nginx服務器
Nginx(發(fā)音同engine x)是一個網頁服務器,它能反向代理HTTP, HTTPS, SMTP, POP3, IMAP的協(xié)議鏈接儒鹿,以及一個負載均衡器和一個HTTP緩存碉考。
特點:
Nginx是一款面向性能設計的HTTP服務器,相較于Apache挺身、lighttpd具有占有內存少侯谁,穩(wěn)定性高等優(yōu)勢。與舊版本(<=2.2)的Apache不同章钾,nginx不采用每客戶機一線程的設計模型墙贱,而是充分使用異步邏輯,削減了上下文調度開銷贱傀,所以并發(fā)服務能力更強惨撇。整體采用模塊化設計,有豐富的模塊庫和第三方模塊庫府寒,配置靈活魁衙。 在Linux操作系統(tǒng)下,nginx使用epoll事件模型株搔,得益于此剖淀,nginx在Linux操作系統(tǒng)下效率相當高。同時Nginx在OpenBSD或FreeBSD操作系統(tǒng)上采用類似于epoll的高效事件模型kqueue纤房。
<li>IIS服務器
IIS是Internet Information Server的縮寫纵隔。它是微軟公司主推的服務器。IIS的特點具有:安全性,強大捌刮,靈活
<li>Lighttpd服務器
Lighttpd是一個德國人領導的開源Web服務器軟件,具有非常低的內存開銷碰煌、cpu占用率低、效能好以及豐富的模塊等特點绅作。Lighttpd是眾多OpenSource輕量級的web server中較為優(yōu)秀的一個芦圾。支持FastCGI,CGI俄认,Auth个少,輸出壓縮(output compress),URL重寫梭依,Alias等重要功能稍算。
<li>Tomcat服務器
Tomcat是Apache軟件基金會的Jakarta項目中的一個核心項目,由Apache役拴、Sun和其他一些公司及個人共同開發(fā)而成糊探。Tomcat技術先進、性能穩(wěn)定河闰,而且免費科平,因而深受Java愛好者的喜愛并得到了部分軟件開發(fā)商的認可,成為目前比較流行的Web應用服務器姜性。
3.打開瀏覽器瞪慧,在地址欄輸入 http://jirengu.com
頁面展現了饑人谷官網的信息,整個過程發(fā)生了什么部念?(饑人谷官網后臺語言 php,web服務器 nginx弃酌,數據庫 mysql)
<li>瀏覽器地址欄輸入URL,然后DNS解析器會將URL解析成所訪問的nginx服務器的IP地址儡炼,然后瀏覽器通過IP地址在Internet上找到對應的nginx服務器妓湘。
然后客戶端會打包HTTP請求
客戶機通過TCP/IP協(xié)議建立到服務器的鏈接乌询。
建立鏈接鏈接之后榜贴,客戶機向nginx服務器發(fā)送HTTP請求報文,請求資源妹田。
根據chrome瀏覽器控制臺的反饋信息唬党,客戶機想nginx服務器請求的饑人谷網站資源文檔數為32個,其中包括(gif鬼佣,圖片驶拱,文字,HTML文檔沮趣,PHP文件屯烦,CSS文檔,JS文檔等等)
4 nginx服務器向客戶機發(fā)送HTTP協(xié)議響應報文:
nginx服務器會根據響應報文內不同資源類型會做出不同的處理房铭。
(1)如果是HTML文檔驻龟,nginx服務器會將相應的HTML文檔找到并打開,然后將文件發(fā)送給客戶機缸匪。
(2)如果是PHP文檔翁狐,nginx服務器是無法解析PHP文檔,它會借助PHP應用服務器去將PHP文檔解析成靜態(tài)的HTML代碼凌蔬,然后將HTML代碼發(fā)送給nginx服務器露懒,最后nginx服務器將HTML文檔打開發(fā)送給客戶機。
(3)對于例如注冊或登錄等表單提交操作砂心,涉及前后端的數據交換懈词,則會訪問mysql數據庫,那么nginx服務通過php應用服務器對php文件的處理辩诞,間接操作數據庫坎弯,從而最終生成一個包含數據庫信息的html靜態(tài)代碼(同樣,這里的靜態(tài)代碼是和前面的html文檔有關聯的組成部分而不是兩個頁面)
5.** 客戶機瀏覽器加載解析文檔译暂,然后渲染文檔抠忘。**
由客戶端解釋HTML文檔,在客戶端屏幕上渲染圖形結果外永,最終實現網頁在客戶端的呈現
6 客戶機與服務器斷開鏈接崎脉,服務器等待下次請求。
實戰(zhàn)
1.基于xampp搭建Web服務器和完成相關配置
<li>xampp的安裝和環(huán)境搭建
安裝好xampp后伯顶,啟動Web服務器和數據庫服務器囚灼,但是默認端口已被占用,所以修改端口號
<li>通過瀏覽器訪問Web服務器上的php文件
Web服務器的根目錄在htdocs文件夾祭衩,所以根據文件路徑訪問php2.php
版權歸饑人谷peter和饑人谷所有灶体,若有轉載,請注明來源
感謝瓜子觀眾: