官术网_书友最值得收藏!

1.1 Web技術(shù)原理

Web是World Wide Web的簡稱,它是在Internet上發(fā)布信息、實現(xiàn)各種服務(wù)的平臺。它采用超文本傳輸協(xié)議(HyperText Transfer Protocol,HTTP)實現(xiàn)瀏覽者和服務(wù)器之間的交互,通過HTTP協(xié)議,世界各地的網(wǎng)絡(luò)用戶可以獲得各種信息資源。目前Web技術(shù)正在發(fā)生變革,以Ajax為代表的Web 2.0技術(shù)的出現(xiàn),使用戶能感受到更深的體驗。本節(jié)將介紹HTTP協(xié)議的原理和Web程序設(shè)計的基礎(chǔ)。

1.1.1 HTTP協(xié)議的原理

HTTP作為Web技術(shù)的核心協(xié)議被廣泛地應(yīng)用,HTTP協(xié)議采用客戶機(瀏覽器)/服務(wù)器的體系機構(gòu),當(dāng)客戶端和服務(wù)器建立連接后,由客戶端發(fā)送一個請求給服務(wù)器,服務(wù)器處理完該請求后返回處理消息給客戶端,并關(guān)閉此次交互的連接。圖1-1說明了客戶端和服務(wù)器端工作的原型。

圖1-1 客戶端和服務(wù)器端工作的原型

可見,一次HTTP事務(wù)的交互分為四個步驟處理,客戶端主要以瀏覽器為主,常見的客戶端瀏覽器包括:Internet Explorer、Netscape Navigator等。它的作用是解釋并顯示服務(wù)器返回的HTML文件和響應(yīng)信息。我們可以基于HTTP協(xié)議訪問不同的服務(wù)器,HTTP協(xié)議支持各種類型的服務(wù)器,如FTP、SMTP、Telnet等。

用戶在瀏覽器地址欄里輸入網(wǎng)頁地址,我們稱其為URL,例如:http://localhost/4chapter/4.5/type.php,其中l(wèi)ocalhost為本地的服務(wù)器域名,4chapter為服務(wù)器中PHP發(fā)布路徑下的一個目錄,type.php為該目錄下的一個具體文件。其具體的通信過程為:

1.用戶輸入網(wǎng)址后,請求服務(wù)器上的type.php文件,服務(wù)器接受用戶的請求。

2.服務(wù)器響應(yīng)請求,在本機上找到用戶請求的文件type.php。

3.服務(wù)器將type.php文件返回到用戶的瀏覽器。

4.瀏覽器接收到文件后,將其解析為HTML格式,并將結(jié)果顯示給用戶。通過圖1-2來描述上述原理的操作過程。

圖1-2 網(wǎng)頁處理的過程

注意:

傳統(tǒng)HTTP的請求響應(yīng)過程,需要重新刷新頁面才能獲取服務(wù)器返回的數(shù)據(jù)。現(xiàn)在可以使用Ajax技術(shù)實現(xiàn)數(shù)據(jù)的異步響應(yīng),詳細內(nèi)容請參考本書后面的章節(jié)。

1.1.2 URL介紹

URL(Uniform Resource Locator)統(tǒng)一資源定位符是Internet網(wǎng)頁的地址,它由一系列具有一定含義的字符串組成。以下列出了URL字符串的各個組成部分:

Internet資源類型(scheme):如“http://”表示W(wǎng)WW服務(wù)器,“ftp://”表示FTP服務(wù)器。

服務(wù)器地址(host):指出訪問頁面所在的服務(wù)器域名。

端口(port):默認端口為80,對某些資源的訪問來說,需給出服務(wù)器提供的端口號。

路徑(path):指明服務(wù)器上某資源的位置(其格式與DOS系統(tǒng)中的格式一樣,通常由目錄/子目錄/文件名這樣的結(jié)構(gòu)組成)。與端口一樣,路徑并非總是需要的。

下圖解析了一個頁面的URL的各個組成部分,如圖1-3所示:

圖1-3 URL地址解析圖

1.1.3 HTTP請求響應(yīng)的過程

HTTP請求的主要內(nèi)容為統(tǒng)一資源定位符(URL)、HTTP方法、HTTP版本號和請求頭部。HTTP協(xié)議的請求方法很多,最常用的是GET和POST方法。

1.HTTP GET請求

GET方式主要是向服務(wù)器索取資源,比如網(wǎng)頁、圖片等。瀏覽器向服務(wù)器發(fā)送基于該URL的HTTP GET請求,以通知服務(wù)器要獲取哪些資源。以http://localhost/1chapter/1.3.2/Hello.php為例,HTTP GET請求的內(nèi)容如圖1-4所示:

圖1-4 HTTP GET請求的內(nèi)容

2.HTTP POST請求

瀏覽器可以通過HTTP POST向服務(wù)器發(fā)送大量的復(fù)雜數(shù)據(jù),如果提交的數(shù)據(jù)量很大,就可以選擇POST請求來提交,HTTP POST請求的內(nèi)容如圖1-5所示:

圖1-5 HTTP POST請求的內(nèi)容

服務(wù)器發(fā)回的HTTP響應(yīng)主要包括響應(yīng)首部和響應(yīng)體。響應(yīng)首部主要是服務(wù)器使用的HTTP版本以及請求是否成功,以及響應(yīng)內(nèi)容的類型(文本、圖片、視音頻等),響應(yīng)體為瀏覽器將要解釋執(zhí)行并顯示給用戶的具體內(nèi)容。一個HTTP響應(yīng)的內(nèi)容如圖1-6所示:

圖1-6 HTTP響應(yīng)的內(nèi)容

注意:

默認情況下,Apache2服務(wù)器發(fā)布應(yīng)用使用80端口,筆者在本地訪問url.html頁面,因此服務(wù)器名表示為localhost,當(dāng)然也可以書寫為localhost:80

主站蜘蛛池模板: 横山县| 江陵县| 成安县| 永年县| 蒲城县| 叙永县| 永兴县| 新丰县| 江北区| 丹阳市| 海丰县| 兴安盟| 镇巴县| 周宁县| 上杭县| 剑川县| 驻马店市| 崇礼县| 通山县| 城市| 鹰潭市| 泰宁县| 高碑店市| 清徐县| 波密县| 潍坊市| 威宁| 和龙市| 抚顺县| 清原| 金寨县| 徐闻县| 乐昌市| 绥滨县| 苏尼特左旗| 黑山县| 临洮县| 论坛| 汉阴县| 肇州县| 新河县|