熟悉后端語言

動手

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

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

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

問題

一、簡單描述下web 服務器、PHP、數據庫、瀏覽器是如何實現動態網站的?

  • 用戶輸入url

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

  • 瀏覽器找到對應的主機IP后,與對應的web服務器建立連接。通過HTTP協議向web服務發送請求,請求到服務器相應目錄下的文件。

  • 若訪問的為服務端的html文件,則請求服務器相應目錄下的html文件。

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

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

  • 服務器將接收到的html文件輸出到瀏覽器,瀏覽器接收到服務器的響應后,接收并下載服務端的html代碼。最后,瀏覽器解讀html代碼,并將它渲染到頁面。
    詳細的可以參考動態網站訪問流程

二、常見的 WEB 服務器有哪些?

WEB服務器主要提供網上信息瀏覽服務,常見的服務器有:

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

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

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

推薦閱讀更多精彩內容

  • 1.初學者在本地安裝 Apache 與 PHP。安裝 xampp 套件即可。XAMPP 里面包含 Apache 和...
    泰格_R閱讀 381評論 0 0
  • 1. 簡單描述下web 服務器、PHP、數據庫、瀏覽器是如何實現動態網站的? 用戶端訪問服務器端的html文件通過...
    Maggie_77閱讀 329評論 0 0
  • 1. 簡單描述下web 服務器、PHP、數據庫、瀏覽器是如何實現動態網站的? 用戶端訪問服務端的HTML文件 用戶...
    GarenWang閱讀 381評論 0 0
  • ——讀《小說家的第十四堂課》 文/森書 “欲新一國之民,不可不先新一國之小說。”——梁啟超。 00 四大新老高手 ...
    森書閱讀 445評論 5 5
  • 我的寶寶,對不起,總是會惹你生氣╰_╯,其實我真的真的也不喜歡你生氣,我會怕我會不知所措,會想要知道該怎么辦才好,...
    握著荊條閱讀 224評論 0 0