書名: PHP動態(tài)網(wǎng)站開發(fā)項目教程作者名: 牟奇春 汪劍本章字數(shù): 3808字更新時間: 2021-03-05 18:26:00
1.2 相關知識
1.2.1 認識Web應用程序
在Web 2.0時代,網(wǎng)站往往被技術人員稱為Web應用程序。隨著網(wǎng)絡技術的不斷完善和發(fā)展,網(wǎng)站的設計開發(fā)和桌面應用程序的開發(fā)越來越接近。傳統(tǒng)桌面應用程序完成的業(yè)務也越來越多地遷移至網(wǎng)絡環(huán)境,通過Web應用程序來完成,如OA(辦公自動化系統(tǒng))、在線學習系統(tǒng)、教務管理系統(tǒng)等。
1. Web應用程序的工作原理
Web應用程序是一種典型的B/S(Brower/Server,瀏覽器/服務器)結構,如圖1.2所示。

圖1.2 Web應用程序結構
客戶訪問網(wǎng)站使用的瀏覽器稱為客戶端。Web應用程序包含的所有網(wǎng)頁以及相關資源保存于Web服務器,Web應用程序的數(shù)據(jù)也可使用專門的數(shù)據(jù)庫服務器進行存放和管理。
當用戶在瀏覽器中輸入一個網(wǎng)址(URL)(如http://localhost/test.php),請求訪問時,該請求被封裝為一個HTTP請求,通過網(wǎng)絡傳遞給Web服務器。Web服務器處理接收到的HTTP請求,將處理結果以HTML格式返回給客戶端瀏覽器。如果在處理HTTP請求時需要訪問數(shù)據(jù)庫,Web服務器會將相關數(shù)據(jù)請求提交給數(shù)據(jù)庫服務器,由數(shù)據(jù)庫服務器處理數(shù)據(jù)訪問請求,并將處理結果返回Web服務器。Web服務器將相應的數(shù)據(jù)處理結果返回客戶端。
提示:
在瀏覽器中選擇“查看/源文件”命令所看到的代碼,便是Web服務器返回瀏覽器的一個HTTP請求HTML格式的響應結果。
2. Web應用程序客戶端技術
Web應用程序客戶端技術主要涉及瀏覽器、HTML/XHTML、XML、CSS、腳本語言等。
(1)瀏覽器
瀏覽器作為網(wǎng)頁在客戶端的訪問工具,負責解析網(wǎng)頁中的HTML/XHTML、CSS和腳本語言等內(nèi)容,并將最終結果顯示在瀏覽器中呈現(xiàn)給用戶。國內(nèi)常見的瀏覽器有:IE(Internet Explorer)、Firefox、Safari、Opera、Google Chrome、QQ瀏覽器、百度瀏覽器、搜狗瀏覽器、獵豹瀏覽器、360瀏覽器、UC瀏覽器、傲游瀏覽器和世界之窗瀏覽器等。不同瀏覽器對HTML的支持略有不同,編寫HTML文檔時應注意不同瀏覽器之間的兼容問題。
(2)HTML
HTML(HyperText Markup Language)即超文本標記語言。早期的網(wǎng)頁就是一個個HTML文件,HTML文件擴展名為.htm或.html,該文件為一個純文本文件,它使用各種預定義的標記(tag)來標識文檔的結構、文字、段落、表格、圖片和超級鏈接等信息,瀏覽器負責解釋各種標記以何種方式展示給用戶。
例1.1 一個簡單的HTML文件如下。(源代碼:\chapter1\t1\test1.html)
<html> <head> <title> 這是標題</title> </head> <body> 這是一個簡單的HTML文檔。<br> 單擊下面的圖片鏈接,訪問在線Web 技術免費教學網(wǎng)站w3school。<br> <a > <img src="w3.jpg" width="139" height="22" alt="w3school"> </a> </body> </html>
HTML文件可以使用瀏覽器直接打開以查看顯示結果。上面的HTML文件在IE瀏覽器中的顯示結果如圖1.3所示。

圖1.3 一個簡單的HTML文件
提示:
推薦一個免費的Web技術學習網(wǎng)站:http://www.w3school.com.cn,該網(wǎng)站包括大部分Web開發(fā)技術,如HTML/HTML5、CSS/CSS3、XML、TCP/IP、JavaScript、VBScript、JQuery、JSon、SQL、PHP、ASP和ASP.NET等。
(3)XHTML
XHTML(Extensible HyperText Markup Language)即可擴展超文本標記語言,以HTML為基礎,與HTML相似,但語法更加嚴謹。比如,前面的例子使用了<br>標記在頁面中實現(xiàn)換行。XHTML要求所有標記有結束標記,如<a>的結束標記為</a>。XHTML中的換行標記應該加上標記結束符號,為<br/>。
HTML語法要求比較松散,網(wǎng)頁開發(fā)人員使用起來比較靈活。但對機器而言,語法松散意味著處理難度增大。對于資源有限的設備(如手機),處理難度會更大。因此產(chǎn)生了由DTD定義規(guī)則,語法要求更加嚴格的XHTML。大部分常見的瀏覽器都可以正確地解析XHTML,幾乎所有的網(wǎng)頁瀏覽器在正確解析HTML的同時,可兼容XHTML。
(4)XML
XML是Extensible Markup Language的縮寫,表示為可擴展標記語言,是一種用于標記電子文檔,使其數(shù)據(jù)具有結構化的標記語言。XML與HTML可以算得上是一對孿生兄弟,它們都由SGML(Standard Generalized Markup Language,標準通用標記語言)發(fā)展而來。
HTML使用預定義的標記來告訴瀏覽器如何顯示標記的內(nèi)容。而XML的目的在于組織數(shù)據(jù),使文檔中的數(shù)據(jù)組織更加規(guī)范,便于在不同應用程序、不同平臺之間交換數(shù)據(jù)。
XML使用文檔作為定義的標記來組織數(shù)據(jù),如何解釋標記由用戶決定。XML文件是一個純文本文件,便于網(wǎng)絡傳輸。越來越多的應用程序使用XML文件來保存數(shù)據(jù),如Java、微軟的.NET平臺、各種Web服務器(IIS、Apache、Tomcat等)和各種數(shù)據(jù)庫服務器(MySQL、SQL Server、Oracle等),均使用XML來保存相應的配置信息。
例1.2 一個IIS Web網(wǎng)站配置文件web.config如下。(源代碼:\chapter1\t3\web.config)
<?xml version="1.0" encoding="UTF-8"?> <configuration> <system.webServer> <defaultDocument> <files> <add value="index.php" /> </files> </defaultDocument> </system.webServer> </configuration>
上述代碼中,文件開頭的<?xml>標記表示這是一個XML文件,其version屬性說明了XML版本號。這是一個IIS Web網(wǎng)站的配置文件,它為網(wǎng)站指定了默認文檔為index.php。可以使用瀏覽器直接打開XML文件,查看其中的數(shù)據(jù)組織結構,如圖1.4所示。

圖1.4 在瀏覽器中查看XML文件
(5)CSS
CSS(Cascading Style Sheets)即層疊樣式表,也稱級聯(lián)樣式表。在HTML中,各種預定義的標記只能簡單組織頁面結構和內(nèi)容,CSS則進一步通過樣式來決定瀏覽器如何精確控制HTML標記的顯示,如字體、顏色、背景和其他效果。
目前,大多數(shù)主流瀏覽器均支持CSS,其最新版本為CSS 3。
例1.3 為例1.1中的HTML添加樣式。(源代碼:\chapter1\t3\test3.html)
<html> <head> <title> 這是標題</title> <style type="text/css"> body {font-family: 隸書;} </style> </head> <body> 這是一個簡單的HTML文檔。<br> 單擊下面的圖片鏈接,訪問在線Web 技術免費教學網(wǎng)站w3school。<br> <a style="border-style:solid;border-width:5px;"> <img src="w3.jpg" width="139" height="22" alt="w3school"> </a> </body> </html>
上面的HTML文件中,使用<style>標記定義了一個內(nèi)部樣式表,該樣式表body標記內(nèi)容的字體定義為“隸書”,即使用隸書字體顯示body內(nèi)容的文本。在<a>標記中,用style屬性為超鏈接定義了一個內(nèi)聯(lián)樣式,并為超鏈接添加一個邊框。上面的HTML文件在IE中顯示結果如圖1.5所示。

圖1.5 添加了CSS樣式的HTML文件
(6)客戶端腳本語言
客戶端腳本語言通過編程為HTML頁面添加動態(tài)內(nèi)容,與用戶完成交互。HTML頁面中包含的腳本語言代碼稱為腳本。腳本可以嵌入HTML文檔中,也可存儲在獨立的計算機文件中,使用時包含到HTML文檔中即可。包含了腳本的HTML通常稱為動態(tài)網(wǎng)頁,即DHTML(Dynamic HTML,動態(tài)HTML)。
常見的客戶端腳本語言包括JavaScript、VBScript、Jscript和Applet等,其中JavaScript和VBScript使用最為廣泛。
JavaScript和Java沒有直接關系,它由Netscape公司開發(fā),并在Netscape Navigator(網(wǎng)景瀏覽器)中實現(xiàn)。目前,網(wǎng)景瀏覽器因為技術競爭的原因已經(jīng)退出了市場,但JavaScript卻以頑強的生命力生存下來,并成為最受Web開發(fā)人員歡迎的客戶端腳本語言。
因為技術原因,微軟推出了JScript,CEnvi推出了ScriptEase,它們與JavaScript一樣,可在瀏覽器上運行。為了統(tǒng)一規(guī)格,且JavaScript兼容于ECMA標準,因此,JavaScript也稱為ECMAScript。
VBScript是Visual Basic Script的簡稱,即Visual Basic腳本語言,有時也縮寫為VBS,它是微軟的Visual Basic語言的子集。使用VBScript,可通過Windows腳本宿主調用COM,所以可以使用部分Windows操作系統(tǒng)的程序庫。VBScript是IIS的默認源程序語言。
例1.4 在HTML中使用JavaScript腳本顯示對話框,代碼如下。(源代碼:\chapter1\t4\test4.html)
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <script type="text/javascript"> function showdialog(){ var ok=confirm("請單擊一個按鈕!"); if (ok==true){ alert("你單擊了“確定”按鈕!"); }else{ alert("你單擊了“取消”按鈕!"); } } </script> </head> <body> <input type="button" onclick="showdialog()">單擊按鈕測試JavaScript 腳本</input> </body> </html>
上面的HTML文件在IE中顯示的結果如圖1.6所示。打開HTML文件后,在頁面中單擊按鈕,會打開圖1.7所示的對話框,提示“請單擊一個按鈕”,此時可單擊對話框中的
或
按鈕。

圖1.6 在HTML中使用JavaScript腳本顯示對話框

圖1.7 JavaScript對話框
3. Web服務器
Web服務器即WWW(World Wide Web,萬維網(wǎng))服務器,是網(wǎng)絡服務器計算機中的一種應用程序,用于提供WWW服務。WWW服務即通過互聯(lián)網(wǎng)為用戶提供各種網(wǎng)頁。網(wǎng)頁是網(wǎng)站的基本信息單位,它通常由文字、圖片、動畫和聲音等多種媒體信息以及鏈接組成,用HTML編寫,通過鏈接實現(xiàn)與其他網(wǎng)頁或網(wǎng)站的關聯(lián)和跳轉。一個網(wǎng)站的所有網(wǎng)頁和相關資源都需要上傳到Web服務器所在的網(wǎng)絡服務器計算機中,保存在Web服務器管理的目錄。Web服務器中的每個網(wǎng)頁都有一個URL(Uniform Resource Locator,統(tǒng)一資源定位符),用戶在客戶端的瀏覽器地址欄中輸入URL或其他頁面的URL超級鏈接可以訪問網(wǎng)頁。
萬維網(wǎng)由Web客戶端瀏覽器、Web服務器和網(wǎng)頁資源組成。用戶訪問網(wǎng)絡時,客戶端瀏覽器和Web服務器之間通過HTTP(HyperText Transfer Protocol,超文本傳輸協(xié)議)完成信息的交換。當用戶在瀏覽器中訪問網(wǎng)頁時,首先由瀏覽器向Web服務器發(fā)出請求,建立與服務器的連接。然后用戶請求被封裝在一個HTTP包中傳遞給Web服務器,Web服務器解析收到的HTTP請求數(shù)據(jù)包,給客戶端返回一個HTTP響應。
如果用戶請求訪問的是一個HTML文件,這個HTML文件會直接作為HTTP響應返回;如果用戶請求訪問的是一個服務器端腳本文件,如PHP、JSP或ASP .NET文件,該腳本會被傳遞給響應的處理程序進行處理,處理的結果最后會產(chǎn)生一個HTML文件返回客戶端。常用的Web服務器有IIS、Apache、Nginx、Tomcat及Weblogic等。
4. 數(shù)據(jù)庫服務器、數(shù)據(jù)庫管理系統(tǒng)
目前各種網(wǎng)站都會使用到數(shù)據(jù)庫,而各種業(yè)務邏輯的本質幾乎都涉及數(shù)據(jù)處理。為了高效并安全地處理大量數(shù)據(jù),必須使用數(shù)據(jù)庫管理系統(tǒng)。SQLite和Access等輕量級數(shù)據(jù)庫可以直接訪問,而Oracle、MS SQL Server和MySQL等大中型數(shù)據(jù)庫則需要配置數(shù)據(jù)庫服務器,由服務器內(nèi)置的管理系統(tǒng)負責數(shù)據(jù)的建立、更新和維護。
如果網(wǎng)頁中包含了數(shù)據(jù)請求,數(shù)據(jù)請求由Web服務器提交給數(shù)據(jù)庫服務器,數(shù)據(jù)庫負責完成數(shù)據(jù)請求的處理,將處理結果返回給Web服務器,Web服務器將最終處理結果封裝在HTML文件中返回給用戶。
5. Web服務器端編程技術
Web服務器端編程技術種類很多,常用的有Microsoft的ASP/ASP.NET、Sun的JSP(Sun公司于2010年被Oracle收購,但不少技術人員仍習慣認為Java習慣技術屬于Sun)和Zend的PHP。
(1)ASP/ASP.NET
ASP/ASP.NET是由Microsoft推出的Web服務器端編程技術,通常采用Windows服務器+IIS+SQL Server+ASP/ASP.NET組合進行Web應用程序開發(fā),所有技術均是Microsoft產(chǎn)品,因此兼容性較好、安裝使用方便,配置要求低。同時,Microsoft提供了大量的文檔和強大的開發(fā)工具。基于Microsoft技術的龐大用戶群,ASP/ASP.NET受到大量Web開發(fā)人員的支持。Microsoft相關技術都是商業(yè)軟件,這也導致了網(wǎng)站建設客觀成本比較高。Microsoft相關技術的跨平臺局限性也導致了ASP/ASP.NET只能用于Windows環(huán)境。
(2)JSP
JSP(Java Server Pages)是Java在Web應用程序開發(fā)中的應用,與ASP類似,JSP通過在HTML文件中插入Java代碼來實現(xiàn)業(yè)務邏輯。其中HTML文件稱為JSP文件,擴展名為.jsp。JSP文件在服務器端被處理,轉換為HTML文件返回客戶端。
借助于Java的跨平臺特性,JSP開發(fā)的Web應用程序同樣具有跨平臺特點,既可在UNIX、Linux系統(tǒng)中部署,也可在Windows系統(tǒng)中部署。
(3)PHP
PHP是一種免費、開源的Web開發(fā)技術,它通常與Linux、Apache和MySQL等開源軟件自由組合,形成了一個簡單、安全、低成本、開發(fā)速度快和部署靈活的開發(fā)平臺。PHP是本書的學習內(nèi)容,在后面的章節(jié)中將詳細介紹。
- 軟件開發(fā)視頻大講堂:ASP.NET從入門到精通(第4版)
- ASP.NET從入門到精通(第5版)
- Axure RP 7.0從入門到精通:Web + APP產(chǎn)品經(jīng)理原型設計
- ns-3網(wǎng)絡模擬器基礎及應用
- Adobe XD界面設計與原型制作教程(全彩)
- ASP.NET 3.5教程
- 綜合布線實訓教程(第2版)
- Nutanix超融合基礎架構權威指南
- JavaScript+jQuery前端開發(fā)基礎教程(微課版)
- Axure RP 8 網(wǎng)站與APP原型設計
- 云原生:運用容器、函數(shù)計算和數(shù)據(jù)構建下一代應用
- Bootstrap響應式Web前端開發(fā)
- 新編信息檢索與利用(第四版)
- ASP.NET框架應用程序實戰(zhàn):軟件開發(fā)工程師崗前必備
- 云計算平臺構建與5G網(wǎng)絡云化部署