熟悉后端語言

動手

一、在本地安裝 Apache 與 PHP。安裝 xampp 套件即可。XAMPP 里面包含 Apache 和 PHP.windows 用戶也可安裝 WAMP,安裝包體積會小一些,也可單獨(dú)安裝Apache 和 PHP。

二、學(xué)習(xí) xampp或者wamp 的簡單配置使用,在本地啟動 web 服務(wù)器,通過瀏覽器訪問,通過瀏覽器打開本地 webserver 下的 php 文件。

<!DOCTYPE html>
<html>
  <h1>My first PHP page</h1>
  <body>
    <?php
      echo "Hello cttin";
    ?>
  </body>
</html>

問題

一、簡單描述下web 服務(wù)器、PHP、數(shù)據(jù)庫、瀏覽器是如何實(shí)現(xiàn)動態(tài)網(wǎng)站的?

  • 用戶輸入url

  • 通過DNS解析,找到對應(yīng)的IP地址。具體過程可以參考從輸入URL到頁面加載完成的過程-DNS解析域名過程

  • 瀏覽器找到對應(yīng)的主機(jī)IP后,與對應(yīng)的web服務(wù)器建立連接。通過HTTP協(xié)議向web服務(wù)發(fā)送請求,請求到服務(wù)器相應(yīng)目錄下的文件。

  • 若訪問的為服務(wù)端的html文件,則請求服務(wù)器相應(yīng)目錄下的html文件。

  • 若訪問的為服務(wù)端的php文件,則請求服務(wù)器相應(yīng)目錄下的php文件。服務(wù)器本身并不能處理php文件,就尋找并委托PHP應(yīng)用服務(wù)器來處理。最終把它翻譯為html靜態(tài)代碼,并交還給服務(wù)器。

  • 若訪問的為服務(wù)端的mySQL數(shù)據(jù)庫,則請求服務(wù)器相應(yīng)目錄下的php文件。PHP應(yīng)用服務(wù)器接受服務(wù)器委托,收到相應(yīng)的文件。PHP應(yīng)用服務(wù)器
    打開此php文件,php文件中通過對數(shù)據(jù)庫連接的代碼來連接本機(jī)或者網(wǎng)絡(luò)上其他機(jī)器的MySQL數(shù)據(jù)庫。且在php文件中通過標(biāo)準(zhǔn)的SQL查詢語句來獲取數(shù)據(jù)庫中的數(shù)據(jù)。接著,PHP應(yīng)用服務(wù)器再將數(shù)據(jù)生成html代碼。

  • 服務(wù)器將接收到的html文件輸出到瀏覽器,瀏覽器接收到服務(wù)器的響應(yīng)后,接收并下載服務(wù)端的html代碼。最后,瀏覽器解讀html代碼,并將它渲染到頁面。
    詳細(xì)的可以參考動態(tài)網(wǎng)站訪問流程

二、常見的 WEB 服務(wù)器有哪些?

WEB服務(wù)器主要提供網(wǎng)上信息瀏覽服務(wù),常見的服務(wù)器有:

  • Apache
    Apache是世界上用的最多的服務(wù)器。它的優(yōu)點(diǎn)是源代碼開放,因此有很多人參與到新功能的開發(fā)設(shè)計(jì);支持跨平臺使用,可以運(yùn)行在幾乎所有的Unix、Windows、Linux系統(tǒng)平臺上。
  • Lighttpd
    Lighttpd是一個德國人寫的開源軟件,其目標(biāo)是專門針對高性能網(wǎng)站、安全、快速、兼容性好并且靈活的webserver環(huán)境。它具有內(nèi)存開銷低、CPU占用率低、效能好,以及模塊豐富等特點(diǎn)。
  • Tomcat
    Tomcat是一個開放源代碼、運(yùn)行servlet和JSP Web應(yīng)用軟件的基于Java的Web應(yīng)用軟件容器。Tomcat Server是根據(jù)servlet和JSP規(guī)范執(zhí)行的,因此也可以說Tomcat Server實(shí)行了Apache-Jakarta規(guī)范,且比絕大多數(shù)商業(yè)應(yīng)用軟件服務(wù)器要好。但是,Tomcat對靜態(tài)文件、高并發(fā)的處理比較弱。
  • Microsoft IIS(Internet Information Server)
    IIS是一種Web服務(wù)組件,其中包括Web服務(wù)器、FTP服務(wù)器、NNTP服務(wù)器和SMTP服務(wù)器,分別用于網(wǎng)頁瀏覽、文件傳輸、新聞服務(wù)和郵件發(fā)送等方面,它使得在網(wǎng)絡(luò)(包括互聯(lián)網(wǎng)和局域網(wǎng))上發(fā)布信息成了一件很容易的事。
  • Nginx
    不僅是一個小巧且高效的HTTP服務(wù)器,也可以做一個高效的負(fù)載均衡反向代理,通過它接受用戶的請求并分發(fā)到多個Mongrel進(jìn)程可以極大提高Rails應(yīng)用的并發(fā)能力。

三、打開瀏覽器,在地址欄輸入URL到頁面展現(xiàn),整個過程發(fā)生了什么?(后臺語言 php,web服務(wù)器 nginx,數(shù)據(jù)庫 mysql)

  • 輸入url。
  • 通過DNS解析出主機(jī)的的IP地址。具體的過程分為:
  • 瀏覽器會緩存DNS,存儲的時間隨瀏覽器自己定。
  • 首先,操作系統(tǒng)先檢查自己的hosts文件是否有這個網(wǎng)址的映射關(guān)系,如果有就調(diào)用這個這個IP地址映射,完成域名解析。
  • 當(dāng)hosts文件沒有網(wǎng)址的映射時,就會查找本地DNS緩存,如果有這個網(wǎng)址的映射關(guān)系,則直接返回,完成域名解析。
  • 如果hosts和本地緩存都沒有相應(yīng)的網(wǎng)址映射關(guān)系,則首先會找TCP/IP參數(shù)中設(shè)置的首選DNS服務(wù)器(ISP的DNS)。此服務(wù)器接收查詢時,如果要查詢的域名包含在本地配置區(qū)域資源中,則返回解析結(jié)果給客戶機(jī),完成域名解析,此解析具有權(quán)威性。
  • 如果要查詢的域名,不由本地DNS服務(wù)器區(qū)域解析,但該服務(wù)器已緩存了此網(wǎng)址映射關(guān)系,則調(diào)用這個IP地址映射,完成域名解析,此解析不具有權(quán)威性。
  • 如果本地DNS服務(wù)器本地區(qū)域文件與緩存解析都失效,則根據(jù)本地DNS服務(wù)器的設(shè)置(是否設(shè)置轉(zhuǎn)發(fā)器)進(jìn)行查詢,如果未用轉(zhuǎn)發(fā)模式,本地DNS就把請求發(fā)至 “根DNS服務(wù)器”,“根DNS服務(wù)器”收到請求后會判斷這個域名(.net)是誰來授權(quán)管理,并會返回一個負(fù)責(zé)該頂級域名服務(wù)器的一個IP。
  • 如果用的是轉(zhuǎn)發(fā)模式,此DNS服務(wù)器就會把請求轉(zhuǎn)發(fā)至上一級DNS服務(wù)器,由上一級服務(wù)器進(jìn)行解析,上一級服務(wù)器如果不能解析,或找根DNS或把轉(zhuǎn)請求轉(zhuǎn)至上上級,以此循環(huán)。
  • 找到對應(yīng)的主機(jī)IP后,與對應(yīng)的web服務(wù)器建立連接。瀏覽器通過HTTP協(xié)議向Nginx服務(wù)器發(fā)送請求,請求到相應(yīng)的php文件。PHP應(yīng)用服務(wù)器受服務(wù)器委托,找到對應(yīng)的文件,php文件中連接MySQL數(shù)據(jù)庫,通過標(biāo)準(zhǔn)的SQL查詢語句來獲取數(shù)據(jù)庫中的數(shù)據(jù),對它進(jìn)行操作。完成之后,PHP服務(wù)器將數(shù)據(jù)生成html代碼。
  • Nginx服務(wù)器將接收到html文件輸出到瀏覽器,瀏覽器接收到服務(wù)器的響應(yīng)后,接收并下載服務(wù)端的html代碼。最后,瀏覽器解讀html代碼,并將它渲染到頁面。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 1.初學(xué)者在本地安裝 Apache 與 PHP。安裝 xampp 套件即可。XAMPP 里面包含 Apache 和...
    泰格_R閱讀 435評論 0 0
  • 1. 簡單描述下web 服務(wù)器、PHP、數(shù)據(jù)庫、瀏覽器是如何實(shí)現(xiàn)動態(tài)網(wǎng)站的? 用戶端訪問服務(wù)器端的html文件通過...
    Maggie_77閱讀 398評論 0 0
  • 1. 簡單描述下web 服務(wù)器、PHP、數(shù)據(jù)庫、瀏覽器是如何實(shí)現(xiàn)動態(tài)網(wǎng)站的? 用戶端訪問服務(wù)端的HTML文件 用戶...
    GarenWang閱讀 427評論 0 0
  • ——讀《小說家的第十四堂課》 文/森書 “欲新一國之民,不可不先新一國之小說?!薄簡⒊?00 四大新老高手 ...
    森書閱讀 486評論 5 5
  • 我的寶寶,對不起,總是會惹你生氣╰_╯,其實(shí)我真的真的也不喜歡你生氣,我會怕我會不知所措,會想要知道該怎么辦才好,...
    握著荊條閱讀 249評論 0 0

友情鏈接更多精彩內(nèi)容