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

1.2 HTTP 請(qǐng)求響應(yīng)模型

Web應(yīng)用是基于B/S架構(gòu)(也就是瀏覽器/服務(wù)器架構(gòu))的。應(yīng)用程序部署在服務(wù)器端,客戶端通過瀏覽器訪問應(yīng)用程序??蛻舳税l(fā)送HTTP請(qǐng)求消息給服務(wù)器,服務(wù)器將請(qǐng)求傳遞給Web應(yīng)用程序,Web應(yīng)用程序處理請(qǐng)求,并把響應(yīng)的HTML頁面?zhèn)骰亟o客戶端,所以說HTTP協(xié)議基于請(qǐng)求響應(yīng)模型。

一個(gè)完整的HTTP會(huì)話過程包括:首先,客戶端與Web服務(wù)器建立連接,客戶端向Web服務(wù)器發(fā)送HTTP請(qǐng)求消息,Web服務(wù)器處理請(qǐng)求,并將響應(yīng)消息傳送給客戶端,這樣一個(gè)來回后,這個(gè)連接就關(guān)閉了。

HTTP超文本傳輸協(xié)議是一個(gè)無狀態(tài)的協(xié)議。也就是說,每當(dāng)客戶端訪問Web服務(wù)器上的某個(gè)Web頁面時(shí),都要建立與服務(wù)器的一個(gè)獨(dú)立的連接。服務(wù)器不保留前一次訪問的任何信息。Web服務(wù)器將客戶端對(duì)某個(gè)頁面的每次訪問都當(dāng)做相互無關(guān)的訪問來處理;服務(wù)器不會(huì)自動(dòng)保留用戶的狀態(tài)信息。

HTTP消息包括起始行、題頭域和信息體3部分。

起始行通常是請(qǐng)求消息的首行,包含3個(gè)域:HTTP方法、通用資源標(biāo)識(shí)符和HTTP協(xié)議版本。盡管有幾種HTTP方法可以從服務(wù)器中檢索數(shù)據(jù),但是最常用的方法只有g(shù)et和post方法。例如,get請(qǐng)求的請(qǐng)求行如下。

        get/first.html HTTP/1.0

HTTP請(qǐng)求的題頭域可以沒有或有多個(gè)。請(qǐng)求題頭域允許客戶端向服務(wù)器傳遞有關(guān)請(qǐng)求和客戶端本身的一些附加信息。請(qǐng)求消息和響應(yīng)消息的題頭域是相同的。首先是題頭域的名稱,接著是冒號(hào)和值。如果對(duì)同一個(gè)題頭域規(guī)定了多個(gè)值,則必須用逗號(hào)隔開。例如:

        hosting:localhost:8080
        accept-encoding:gzip,deflate

一旦服務(wù)器接收并處理了請(qǐng)求消息,它就必須向客戶端返回一條響應(yīng)消息。響應(yīng)消息包含狀態(tài)行、0個(gè)多個(gè)題頭域,空行后是一個(gè)消息體。狀態(tài)行包含響應(yīng)消息所采用的HTTP協(xié)議版本,之后是響應(yīng)狀態(tài)碼和狀態(tài)描述,中間用空格隔開。響應(yīng)狀態(tài)碼是3位數(shù)字,用于描述服務(wù)器的響應(yīng)狀態(tài)。

1yy(以1開頭的3位數(shù)):主要是實(shí)驗(yàn)性質(zhì)的。

2yy:表明請(qǐng)求成功。例如,200表明已成功取得了請(qǐng)求頁面。

3yy:表明在請(qǐng)求成功之前應(yīng)該采取進(jìn)一步的行動(dòng)。

4yy:表明瀏覽器無法滿足請(qǐng)求。例如,404表示請(qǐng)求的頁面不存在。

5yy:表明服務(wù)器出現(xiàn)問題。例如,500說明服務(wù)器內(nèi)部發(fā)生錯(cuò)誤。

主站蜘蛛池模板: 巴青县| 准格尔旗| 息烽县| 深圳市| 中超| 兰西县| 夏津县| 改则县| 浮山县| 寿宁县| 定安县| 正安县| 永城市| 伊川县| 邵阳市| 内乡县| 利辛县| 奉化市| 齐齐哈尔市| 山阴县| 格尔木市| 剑河县| 淮滨县| 鄂伦春自治旗| 安平县| 彝良县| 仙居县| 昂仁县| 谢通门县| 胶州市| 正宁县| 新丰县| 宣威市| 乐清市| 南雄市| 碌曲县| 济宁市| 临洮县| 财经| 滦平县| 利津县|