|
15.5.2 HTTP協(xié)議報(bào)文格式(1) 接下來(lái)我們看看HTTP協(xié)議(Hypertext Transfer Protocol――超文本傳輸協(xié)議)瀏覽器端(客戶端)向WEB服務(wù)器端訪問(wèn)頁(yè)面的過(guò)程和HTTP協(xié)議報(bào)文的格式。 基于HTTP協(xié)議的客戶機(jī)訪問(wèn)包括4個(gè)過(guò)程,分別是建立TCP套接字連接、發(fā)送HTTP請(qǐng)求報(bào)文、接收HTTP應(yīng)答報(bào)文和關(guān)閉TCP套接字連接: 1. 創(chuàng)建TCP套接字連接 客戶端與WEB服務(wù)器創(chuàng)建TCP套接字連接,其中WEB端服務(wù)器的地址可以通過(guò)域名解析確定,WEB端的套接字偵聽端口一般是80。 2. 發(fā)送HTTP請(qǐng)求報(bào)文 客戶端向WEB服務(wù)端發(fā)送請(qǐng)求報(bào)文,HTTP協(xié)議的請(qǐng)求報(bào)文格式為:
其中"CRLF"表示回車換行。 "請(qǐng)求行"中的"方法"描述了對(duì)指定資源執(zhí)行的動(dòng)作,常用的方法"GET"、"HEAD"和"POST"等3種,它們的含義如表15-8所示: 表15-8 HTTP請(qǐng)求方法
"實(shí)體頭信息"中記載了報(bào)文的屬性,利用這些信息可以實(shí)現(xiàn)客戶端與WEB服務(wù)器之間的請(qǐng)求或應(yīng)答,它包括報(bào)文的數(shù)據(jù)類型、壓縮方法、語(yǔ)言、長(zhǎng)度、壓縮方法、最后一次修改時(shí)間、數(shù)據(jù)有效期等信息。 實(shí)體內(nèi)容是報(bào)文傳送的附加信息,一般供POST請(qǐng)求填寫。 GET請(qǐng)求報(bào)文例子 一個(gè)URL為"http://www./toupiaoceshi.asp?name=朱云翔"的GET請(qǐng)求報(bào)文例子如下:
其中"/toupiaoceshi.asp?name=朱云翔"是URL信息,語(yǔ)句"ACCEPT:*/*"及其后的語(yǔ)句是"實(shí)體頭信息"。 注意:在語(yǔ)句"Connection:Keep-Alive"下的空行是必須的。 POST請(qǐng)求報(bào)文例子 下面是HTTP協(xié)議中關(guān)于POST請(qǐng)求報(bào)文例子,節(jié)自《中國(guó)聯(lián)合通信公司短消息網(wǎng)關(guān)系統(tǒng)接口協(xié)議(SGIP)》V1.2版:
15.5.2 HTTP協(xié)議報(bào)文格式(2) 3. 接收HTTP應(yīng)答報(bào)文 WEB服務(wù)器處理客戶請(qǐng)求,并向客戶機(jī)發(fā)送應(yīng)答報(bào)文,HTTP協(xié)議的應(yīng)答報(bào)文格式為: 應(yīng)答報(bào)文 = 狀態(tài)行(實(shí)體頭信息)CRLF [實(shí)體內(nèi)容] 狀態(tài)行 = HTTP版本號(hào) 狀態(tài)碼 原因敘述 狀態(tài)碼描述了WEB服務(wù)器執(zhí)行客戶機(jī)請(qǐng)求的狀態(tài)信息,其取值含義如表15-8所示: 表15-8 HTTP應(yīng)答響應(yīng)碼含義
GET應(yīng)答報(bào)文例子 一個(gè)請(qǐng)求URL為"http://www./toupiaoceshi.asp?name=朱云翔"的應(yīng)答報(bào)文例子如下:
語(yǔ)句"HTTP/1.1 200 OK"中,"200"是響應(yīng)碼,"OK"是原因描述。 POST應(yīng)答報(bào)文例子 下面是HTTP協(xié)議中關(guān)于POST應(yīng)答報(bào)文例子,節(jié)自《中國(guó)聯(lián)合通信公司短消息網(wǎng)關(guān)系統(tǒng)接口協(xié)議(SGIP)》V1.2版:
一般情況下,POST應(yīng)答報(bào)文的"實(shí)體"部分存儲(chǔ)實(shí)際傳輸?shù)男畔ⅰ?/p> 4. 關(guān)閉TCP套接字連接 客戶機(jī)與服務(wù)器雙方關(guān)閉套接字連接,結(jié)束TCP/IP對(duì)話。 |
|
|