頁(yè)面的運(yùn)作原理

簡(jiǎn)單描述下web 服務(wù)器、PHP、數(shù)據(jù)庫(kù)、瀏覽器是如何實(shí)現(xiàn)動(dòng)態(tài)網(wǎng)站的?
  • 首先在瀏覽器中輸入域名
  • 瀏覽器通過(guò)DNS查找域名的IP地址,優(yōu)先通過(guò)緩存查找,然后是遞歸查詢
  • 瀏覽器給web服務(wù)器發(fā)送一個(gè)HTTP請(qǐng)求、包含服務(wù)器需要的信息(get/post、域名、cookie)
  • 通過(guò)TCP協(xié)議瀏覽器與服務(wù)器產(chǎn)生聯(lián)系(三次握手)
  • Web服務(wù)器將用戶請(qǐng)求的php文件交給php應(yīng)用服務(wù)器處理(Web服務(wù)器本身不能處理php動(dòng)態(tài)語(yǔ)言文件);
  • php應(yīng)用服務(wù)器接收、打開并解釋php文件,在php文件中通過(guò)對(duì)數(shù)據(jù)庫(kù)的連接代碼連接本機(jī)或其他機(jī)器上的MySQL數(shù)據(jù)庫(kù),在php中執(zhí)行SQL查詢語(yǔ)句獲得數(shù)據(jù),php應(yīng)用服務(wù)器將獲得的數(shù)據(jù)生成html靜態(tài)代碼;
  • php應(yīng)用服務(wù)器將生成的html靜態(tài)代碼返回Web服務(wù)器,Web服務(wù)器通過(guò)TCP協(xié)議將html
    靜態(tài)代碼傳給瀏覽器;
  • 瀏覽器解析接收到的代碼,開始渲染頁(yè)面并呈獻(xiàn)給用戶。

頁(yè)面運(yùn)作流程
TCP的三次握手與四次分手
動(dòng)態(tài)網(wǎng)站的訪問(wèn)過(guò)程

2.常見的 WEB 服務(wù)器有哪些?

目前最主流的三個(gè)Web服務(wù)器是

  • Apache
    Apache是世界使用排名第一的Web服務(wù)器軟件。它幾乎可以運(yùn)行在所有的計(jì)算機(jī)平臺(tái)上。由于Apache是開源免費(fèi)的,因此有很多人參與到新功能的開發(fā)設(shè)計(jì),不斷對(duì)其進(jìn)行完善。Apache的特點(diǎn)是簡(jiǎn)單、速度快、性能穩(wěn)定,并可做代理服務(wù)器來(lái)使用。
  • Nginx
    Nginx不僅是一個(gè)小巧且高效的HTTP服務(wù)器,也可以做一個(gè)高效的負(fù)載均衡反向代理,通過(guò)它接受用戶的請(qǐng)求并分發(fā)到多個(gè)Mongrel進(jìn)程可以極大提高Rails應(yīng)用的并發(fā)能力。
  • IIS
    IIS(Internet信息服務(wù))英文InternetInformationServer的縮寫。它是微軟公司主推的服務(wù)器。IIS的特點(diǎn)具有:安全性,強(qiáng)大,靈活。
3.打開瀏覽器,在地址欄輸入 http://jirengu.com 頁(yè)面展現(xiàn)了饑人谷官網(wǎng)的信息,整個(gè)過(guò)程發(fā)生了什么?(饑人谷官網(wǎng)后臺(tái)語(yǔ)言 php,web服務(wù)器 nginx,數(shù)據(jù)庫(kù) mysql)
  • 通過(guò)DNS服務(wù)器將域名轉(zhuǎn)換成對(duì)應(yīng)的IP地址
  • 瀏覽器與服務(wù)器之間根據(jù)TCP協(xié)議構(gòu)成連接
  • 請(qǐng)求訪問(wèn)Nginx服務(wù)器上相應(yīng)目錄下的php文件。
  • Nginx服務(wù)器本身不能處理php動(dòng)態(tài)語(yǔ)言腳本文件,就尋找并委托PHP應(yīng)用服務(wù)器來(lái)處理
  • PHP應(yīng)用服務(wù)器打開php文件,在php文件中通過(guò)對(duì)數(shù)據(jù)庫(kù)連接的代碼來(lái)連接本機(jī)或者網(wǎng)絡(luò)上其他機(jī)器上的MySQL數(shù)據(jù)庫(kù),并在php程序中通過(guò)執(zhí)行標(biāo)準(zhǔn)的SQL查詢語(yǔ)句來(lái)獲取數(shù)據(jù)庫(kù)中的數(shù)據(jù),再通過(guò)PHP應(yīng)用服務(wù)器將數(shù)據(jù)生成html靜態(tài)代碼,然后傳遞給Nginx服務(wù)器
  • 瀏覽器收到Web服務(wù)器的響應(yīng)后,接收并下載服務(wù)器端的html靜態(tài)代碼,然后瀏覽器解讀代碼,最終將網(wǎng)頁(yè)呈現(xiàn)出來(lái)。
  • 瀏覽器拿到請(qǐng)求,進(jìn)行頁(yè)面渲染
    • DOM樹,CSS樹,JavaScript

參考
創(chuàng)建服務(wù)器


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

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

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,537評(píng)論 19 139
  • 第一章 Nginx簡(jiǎn)介 Nginx是什么 沒(méi)有聽過(guò)Nginx?那么一定聽過(guò)它的“同行”Apache吧!Ngi...
    JokerW閱讀 33,018評(píng)論 24 1,002
  • 01 有一天,朋友娟兒在微信上找到我來(lái)訴苦。 她準(zhǔn)備考研,幾乎每天都在為了這個(gè)目標(biāo)而努力。圖書館八點(diǎn)開門,但她在五...
    王小青QING閱讀 33,575評(píng)論 19 51
  • #!/bin/bash username=mysqlbackup password=mysqlbackup dat...
    洛洛落閱讀 377評(píng)論 0 1
  • 【說(shuō)些題外話,我曾在寫小N故事時(shí),有人以為我要寫美術(shù)館所有人。 我嘆了口氣。 后來(lái),我做了些嘗試,但是,很不成功。...
    柳汀雪閱讀 452評(píng)論 0 2

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