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

圖1.2 Web應用程序結構
客戶訪問網站使用的瀏覽器稱為客戶端。Web應用程序包含的所有網頁以及相關資源保存于Web服務器,Web應用程序的數據也可使用專門的數據庫服務器進行存放和管理。
當用戶在瀏覽器中輸入一個網址(URL)(如http://localhost/test.php),請求訪問時,該請求被封裝為一個HTTP請求,通過網絡傳遞給Web服務器。Web服務器處理接收到的HTTP請求,將處理結果以HTML格式返回給客戶端瀏覽器。如果在處理HTTP請求時需要訪問數據庫,Web服務器會將相關數據請求提交給數據庫服務器,由數據庫服務器處理數據訪問請求,并將處理結果返回Web服務器。Web服務器將相應的數據處理結果返回客戶端。
提示:
在瀏覽器中選擇“查看/源文件”命令所看到的代碼,便是Web服務器返回瀏覽器的一個HTTP請求HTML格式的響應結果。
2. Web應用程序客戶端技術
Web應用程序客戶端技術主要涉及瀏覽器、HTML/XHTML、XML、CSS、腳本語言等。
(1)瀏覽器
瀏覽器作為網頁在客戶端的訪問工具,負責解析網頁中的HTML/XHTML、CSS和腳本語言等內容,并將最終結果顯示在瀏覽器中呈現給用戶。國內常見的瀏覽器有:IE(Internet Explorer)、Firefox、Safari、Opera、Google Chrome、QQ瀏覽器、百度瀏覽器、搜狗瀏覽器、獵豹瀏覽器、360瀏覽器、UC瀏覽器、傲游瀏覽器和世界之窗瀏覽器等。不同瀏覽器對HTML的支持略有不同,編寫HTML文檔時應注意不同瀏覽器之間的兼容問題。
(2)HTML
HTML(HyperText Markup Language)即超文本標記語言。早期的網頁就是一個個HTML文件,HTML文件擴展名為.htm或.html,該文件為一個純文本文件,它使用各種預定義的標記(tag)來標識文檔的結構、文字、段落、表格、圖片和超級鏈接等信息,瀏覽器負責解釋各種標記以何種方式展示給用戶。
例1.1 一個簡單的HTML文件如下。(源代碼:\chapter1\t1\test1.html)
<html> <head> <title> 這是標題</title> </head> <body> 這是一個簡單的HTML文檔。<br> 單擊下面的圖片鏈接,訪問在線Web 技術免費教學網站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技術學習網站:http://www.w3school.com.cn,該網站包括大部分Web開發技術,如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>標記在頁面中實現換行。XHTML要求所有標記有結束標記,如<a>的結束標記為</a>。XHTML中的換行標記應該加上標記結束符號,為<br/>。
HTML語法要求比較松散,網頁開發人員使用起來比較靈活。但對機器而言,語法松散意味著處理難度增大。對于資源有限的設備(如手機),處理難度會更大。因此產生了由DTD定義規則,語法要求更加嚴格的XHTML。大部分常見的瀏覽器都可以正確地解析XHTML,幾乎所有的網頁瀏覽器在正確解析HTML的同時,可兼容XHTML。
(4)XML
XML是Extensible Markup Language的縮寫,表示為可擴展標記語言,是一種用于標記電子文檔,使其數據具有結構化的標記語言。XML與HTML可以算得上是一對孿生兄弟,它們都由SGML(Standard Generalized Markup Language,標準通用標記語言)發展而來。
HTML使用預定義的標記來告訴瀏覽器如何顯示標記的內容。而XML的目的在于組織數據,使文檔中的數據組織更加規范,便于在不同應用程序、不同平臺之間交換數據。
XML使用文檔作為定義的標記來組織數據,如何解釋標記由用戶決定。XML文件是一個純文本文件,便于網絡傳輸。越來越多的應用程序使用XML文件來保存數據,如Java、微軟的.NET平臺、各種Web服務器(IIS、Apache、Tomcat等)和各種數據庫服務器(MySQL、SQL Server、Oracle等),均使用XML來保存相應的配置信息。
例1.2 一個IIS Web網站配置文件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網站的配置文件,它為網站指定了默認文檔為index.php。可以使用瀏覽器直接打開XML文件,查看其中的數據組織結構,如圖1.4所示。

圖1.4 在瀏覽器中查看XML文件
(5)CSS
CSS(Cascading Style Sheets)即層疊樣式表,也稱級聯樣式表。在HTML中,各種預定義的標記只能簡單組織頁面結構和內容,CSS則進一步通過樣式來決定瀏覽器如何精確控制HTML標記的顯示,如字體、顏色、背景和其他效果。
目前,大多數主流瀏覽器均支持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 技術免費教學網站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>標記定義了一個內部樣式表,該樣式表body標記內容的字體定義為“隸書”,即使用隸書字體顯示body內容的文本。在<a>標記中,用style屬性為超鏈接定義了一個內聯樣式,并為超鏈接添加一個邊框。上面的HTML文件在IE中顯示結果如圖1.5所示。

圖1.5 添加了CSS樣式的HTML文件
(6)客戶端腳本語言
客戶端腳本語言通過編程為HTML頁面添加動態內容,與用戶完成交互。HTML頁面中包含的腳本語言代碼稱為腳本。腳本可以嵌入HTML文檔中,也可存儲在獨立的計算機文件中,使用時包含到HTML文檔中即可。包含了腳本的HTML通常稱為動態網頁,即DHTML(Dynamic HTML,動態HTML)。
常見的客戶端腳本語言包括JavaScript、VBScript、Jscript和Applet等,其中JavaScript和VBScript使用最為廣泛。
JavaScript和Java沒有直接關系,它由Netscape公司開發,并在Netscape Navigator(網景瀏覽器)中實現。目前,網景瀏覽器因為技術競爭的原因已經退出了市場,但JavaScript卻以頑強的生命力生存下來,并成為最受Web開發人員歡迎的客戶端腳本語言。
因為技術原因,微軟推出了JScript,CEnvi推出了ScriptEase,它們與JavaScript一樣,可在瀏覽器上運行。為了統一規格,且JavaScript兼容于ECMA標準,因此,JavaScript也稱為ECMAScript。
VBScript是Visual Basic Script的簡稱,即Visual Basic腳本語言,有時也縮寫為VBS,它是微軟的Visual Basic語言的子集。使用VBScript,可通過Windows腳本宿主調用COM,所以可以使用部分Windows操作系統的程序庫。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,萬維網)服務器,是網絡服務器計算機中的一種應用程序,用于提供WWW服務。WWW服務即通過互聯網為用戶提供各種網頁。網頁是網站的基本信息單位,它通常由文字、圖片、動畫和聲音等多種媒體信息以及鏈接組成,用HTML編寫,通過鏈接實現與其他網頁或網站的關聯和跳轉。一個網站的所有網頁和相關資源都需要上傳到Web服務器所在的網絡服務器計算機中,保存在Web服務器管理的目錄。Web服務器中的每個網頁都有一個URL(Uniform Resource Locator,統一資源定位符),用戶在客戶端的瀏覽器地址欄中輸入URL或其他頁面的URL超級鏈接可以訪問網頁。
萬維網由Web客戶端瀏覽器、Web服務器和網頁資源組成。用戶訪問網絡時,客戶端瀏覽器和Web服務器之間通過HTTP(HyperText Transfer Protocol,超文本傳輸協議)完成信息的交換。當用戶在瀏覽器中訪問網頁時,首先由瀏覽器向Web服務器發出請求,建立與服務器的連接。然后用戶請求被封裝在一個HTTP包中傳遞給Web服務器,Web服務器解析收到的HTTP請求數據包,給客戶端返回一個HTTP響應。
如果用戶請求訪問的是一個HTML文件,這個HTML文件會直接作為HTTP響應返回;如果用戶請求訪問的是一個服務器端腳本文件,如PHP、JSP或ASP .NET文件,該腳本會被傳遞給響應的處理程序進行處理,處理的結果最后會產生一個HTML文件返回客戶端。常用的Web服務器有IIS、Apache、Nginx、Tomcat及Weblogic等。
4. 數據庫服務器、數據庫管理系統
目前各種網站都會使用到數據庫,而各種業務邏輯的本質幾乎都涉及數據處理。為了高效并安全地處理大量數據,必須使用數據庫管理系統。SQLite和Access等輕量級數據庫可以直接訪問,而Oracle、MS SQL Server和MySQL等大中型數據庫則需要配置數據庫服務器,由服務器內置的管理系統負責數據的建立、更新和維護。
如果網頁中包含了數據請求,數據請求由Web服務器提交給數據庫服務器,數據庫負責完成數據請求的處理,將處理結果返回給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應用程序開發,所有技術均是Microsoft產品,因此兼容性較好、安裝使用方便,配置要求低。同時,Microsoft提供了大量的文檔和強大的開發工具。基于Microsoft技術的龐大用戶群,ASP/ASP.NET受到大量Web開發人員的支持。Microsoft相關技術都是商業軟件,這也導致了網站建設客觀成本比較高。Microsoft相關技術的跨平臺局限性也導致了ASP/ASP.NET只能用于Windows環境。
(2)JSP
JSP(Java Server Pages)是Java在Web應用程序開發中的應用,與ASP類似,JSP通過在HTML文件中插入Java代碼來實現業務邏輯。其中HTML文件稱為JSP文件,擴展名為.jsp。JSP文件在服務器端被處理,轉換為HTML文件返回客戶端。
借助于Java的跨平臺特性,JSP開發的Web應用程序同樣具有跨平臺特點,既可在UNIX、Linux系統中部署,也可在Windows系統中部署。
(3)PHP
PHP是一種免費、開源的Web開發技術,它通常與Linux、Apache和MySQL等開源軟件自由組合,形成了一個簡單、安全、低成本、開發速度快和部署靈活的開發平臺。PHP是本書的學習內容,在后面的章節中將詳細介紹。