- PHP動態(tài)網(wǎng)站程序設(shè)計(jì)(第2版)
- 唐四薪
- 1472字
- 2020-04-22 11:55:37
1.1.2 動態(tài)網(wǎng)站的組成與運(yùn)行
1.動態(tài)網(wǎng)站的組成
動態(tài)網(wǎng)站通常由HTML文件、服務(wù)器端腳本文件和一些資源文件組成。
(1)HTML文件提供靜態(tài)的網(wǎng)頁內(nèi)容。
(2)腳本文件提供程序,實(shí)現(xiàn)客戶端與服務(wù)器之間的交互,以及訪問數(shù)據(jù)庫或文件等。
(3)資源文件提供網(wǎng)站中的圖片、視頻等資源,包括圖片文件、多媒體文件和配置文件等。
2.運(yùn)行動態(tài)網(wǎng)站程序的要素
要運(yùn)行動態(tài)網(wǎng)站程序,需要Web服務(wù)器、瀏覽器和HTTP通信協(xié)議等要素。
(1)Web服務(wù)器
運(yùn)行動態(tài)網(wǎng)站需要一個載體,稱為Web服務(wù)器。一個Web服務(wù)器可以部署多個動態(tài)網(wǎng)站(或Web應(yīng)用程序)。
通常Web服務(wù)器有兩層含義,一方面它代表運(yùn)行Web應(yīng)用程序的計(jì)算機(jī)硬件設(shè)備,一臺計(jì)算機(jī)只要安裝了操作系統(tǒng)和Web服務(wù)器軟件,就可算作一臺Web服務(wù)器。另一方面Web服務(wù)器專指一種軟件——Web服務(wù)器軟件,該軟件的功能是響應(yīng)用戶通過瀏覽器提交的HTTP請求,如果用戶請求的是PHP腳本,則Web服務(wù)器軟件將解析并執(zhí)行PHP腳本,生成HTML格式的文本,并發(fā)送到客戶端,顯示在瀏覽器中。
(2)瀏覽器
瀏覽器是用于解析HTML文件(可包括CSS代碼和客戶端JavaScript腳本)并顯示的應(yīng)用程序,它可以從Web服務(wù)器接收、解析和顯示信息資源(可以是網(wǎng)頁或圖像等),信息資源一般使用統(tǒng)一資源定位符(Universal Resource Locator,URL)標(biāo)識。
瀏覽器只能解析和顯示HTML文件,而無法處理服務(wù)器端腳本文件(如PHP文件),這就是為什么可以直接用瀏覽器打開HTML網(wǎng)頁文件,而服務(wù)器端腳本文件只有被放置在Web服務(wù)器上才能被正常瀏覽。
(3)HTTP通信協(xié)議
HTTP是瀏覽器與Web服務(wù)器之間通信的語言。瀏覽器與服務(wù)器之間的會話(見圖1-3),總是由瀏覽器向服務(wù)器發(fā)送HTTP請求信息開始(如用戶輸入網(wǎng)址,請求某個網(wǎng)頁文件),Web服務(wù)器根據(jù)請求返回相應(yīng)的信息,這稱為HTTP響應(yīng),響應(yīng)中包含請求的完整狀態(tài)信息,并在消息體中包含請求的內(nèi)容(如用戶請求的網(wǎng)頁文件內(nèi)容等)。

圖1-3 瀏覽器與服務(wù)器之間的會話
3.動態(tài)網(wǎng)站與Web應(yīng)用程序
一般來說,網(wǎng)站的內(nèi)容需要經(jīng)常更新,并添加新內(nèi)容。早期的網(wǎng)站是靜態(tài)的,更新靜態(tài)網(wǎng)站的內(nèi)容是非常煩瑣的,例如,要增加一個新網(wǎng)頁,就需要手工編輯這個網(wǎng)頁的HTML代碼,然后再更新相關(guān)頁面到這個頁面的鏈接,最后把所有更新過的頁面重新上傳到服務(wù)器。
為了提高網(wǎng)站內(nèi)容更新的效率,我們可以通過構(gòu)建Web應(yīng)用程序來管理網(wǎng)站內(nèi)容。Web應(yīng)用程序可以把網(wǎng)站的HTML頁面部分和數(shù)據(jù)部分分離開。要更新或添加新網(wǎng)頁,只要在數(shù)據(jù)庫中更新或添加記錄就可以了,程序會自動讀取數(shù)據(jù)庫中的記錄,生成新的頁面代碼發(fā)送給瀏覽器,從而實(shí)現(xiàn)了網(wǎng)站內(nèi)容的動態(tài)更新。
可見,Web應(yīng)用程序能夠動態(tài)生成網(wǎng)頁代碼,可以通過各種服務(wù)器端腳本語言來編寫Web應(yīng)用程序。而服務(wù)器端腳本代碼是可以嵌入網(wǎng)頁的HTML代碼中的,嵌入了服務(wù)器端腳本代碼的網(wǎng)頁就稱為動態(tài)網(wǎng)頁文件。因此,如果一個網(wǎng)站中含有動態(tài)網(wǎng)頁文件,則這個網(wǎng)站就相當(dāng)于是一個Web應(yīng)用程序。
Web應(yīng)用程序是B/S結(jié)構(gòu)軟件的產(chǎn)物。它首先是“應(yīng)用程序”,與標(biāo)準(zhǔn)的程序語言(如C、C++)編寫出來的程序沒有本質(zhì)的區(qū)別。然而Web應(yīng)用程序又有其自身獨(dú)特的地方,表現(xiàn)為:①Web應(yīng)用程序是基于Web的,依賴通用的Web瀏覽器來表現(xiàn)它的執(zhí)行結(jié)果;②需要一臺Web服務(wù)器,在服務(wù)器上對數(shù)據(jù)進(jìn)行處理,并將處理結(jié)果生成網(wǎng)頁,以方便客戶端直接使用瀏覽器瀏覽。
利用Web應(yīng)用程序,網(wǎng)站可以實(shí)現(xiàn)動態(tài)更新頁面,以及與用戶進(jìn)行交互(如留言板、論壇、博客、發(fā)表評論)等各種功能。但Web應(yīng)用程序并不等同于動態(tài)網(wǎng)站,它們的側(cè)重點(diǎn)不同。一般來說,動態(tài)網(wǎng)站側(cè)重于給用戶提供信息,而Web應(yīng)用程序側(cè)重于完成某種特定任務(wù),如基于B/S的管理信息系統(tǒng)(Management Information System,MIS)就是一種Web應(yīng)用程序,但不能稱作網(wǎng)站。Web應(yīng)用程序的真正核心功能是對數(shù)據(jù)庫進(jìn)行處理。
- INSTANT OpenCV Starter
- Practical UX Design
- Instant Zepto.js
- Oracle BAM 11gR1 Handbook
- 劍指MySQL:架構(gòu)、調(diào)優(yōu)與運(yùn)維
- Spring+Spring MVC+MyBatis整合開發(fā)實(shí)戰(zhàn)
- Unity 2D Game Development Cookbook
- Python極簡講義:一本書入門數(shù)據(jù)分析與機(jī)器學(xué)習(xí)
- 鴻蒙OS應(yīng)用編程實(shí)戰(zhàn)
- Webpack實(shí)戰(zhàn):入門、進(jìn)階與調(diào)優(yōu)(第2版)
- Arduino Wearable Projects
- Python 3 Object:oriented Programming(Second Edition)
- Go Systems Programming
- 現(xiàn)代C++語言核心特性解析
- 新手學(xué)ASP.NET 3.5網(wǎng)絡(luò)開發(fā)