- PHP網(wǎng)絡(luò)編程學(xué)習(xí)筆記
- 宗杰等編著
- 1345字
- 2019-01-01 14:10:55
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。
- Java 開發(fā)從入門到精通(第2版)
- arc42 by Example
- Mastering LibGDX Game Development
- Python機器學(xué)習(xí)實戰(zhàn)
- Mastering Google App Engine
- C語言從入門到精通
- Go語言底層原理剖析
- Python函數(shù)式編程(第2版)
- 超好玩的Scratch 3.5少兒編程
- 軟件設(shè)計模式(Java版)
- Manage Your SAP Projects with SAP Activate
- Cinder:Begin Creative Coding
- Django 3 Web Development Cookbook
- 歐姆龍PLC編程指令與梯形圖快速入門
- 編譯原理學(xué)習(xí)與實踐指導(dǎo)