web服務(wù)器與http請求

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)給用戶。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

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

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