HTTP報文是面向文本的,報文中的每一個(gè)字段都是一些ASCII碼串,各個(gè)字段的長(cháng)度是不確定的。HTTP有兩類(lèi)報文:請求報文和響應報文。

請求報文
一個(gè)HTTP請求報文由請求行(request line)、請求頭部(header)、空行和請求數據4個(gè)部分組成,下圖給出了請求報文的一般格式。
(1)請求行
請求行由請求方法字段、URL字段和HTTP協(xié)議版本字段3個(gè)字段組成,它們用空格分隔。例如,GET /index.html HTTP/1.1。
HTTP協(xié)議的請求方法有GET、POST、HEAD、PUT、DELETE、OPTIONS、TRACE、CONNECT。這里介紹最常用的GET方法和POST方法。
GET:當客戶(hù)端要從服務(wù)器中讀取文檔時(shí),使用GET方法。GET方法要求服務(wù)器將URL定位的資源放在響應報文的數據部分,回送給客戶(hù)端。使用GET方法時(shí),請求參數和對應的值附加在URL后面,利用一個(gè)問(wèn)號(“?”)代表URL的結尾與請求參數的開(kāi)始,傳遞參數長(cháng)度受限制。例如,/index.jsp?id=100&op=bind。
POST:當客戶(hù)端給服務(wù)器提供信息較多時(shí)可以使用POST方法。POST方法將請求參數封裝在HTTP請求數據中,以名稱(chēng)/值的形式出現,可以傳輸大量數據。
(2)請求頭部
請求頭部由關(guān)鍵字/值對組成,每行一對,關(guān)鍵字和值用英文冒號“:”分隔。請求頭部通知服務(wù)器有關(guān)于客戶(hù)端請求的信息,典型的請求頭有:
User-Agent:產(chǎn)生請求的瀏覽器類(lèi)型。
Accept:客戶(hù)端可識別的內容類(lèi)型列表。
Host:請求的主機名,允許多個(gè)域名同處一個(gè)IP地址,即虛擬主機。
(3)空行
最后一個(gè)請求頭之后是一個(gè)空行,發(fā)送回車(chē)符和換行符,通知服務(wù)器以下不再有請求頭。
(4)請求數據
請求數據不在GET方法中使用,而是在POST方法中使用。POST方法適用于需要客戶(hù)填寫(xiě)表單的場(chǎng)合。與請求數據相關(guān)的最常使用的請求頭是Content-Type和Content-Length。
聯(lián)系客服