http報文是面向文字的,報文中的每乙個欄位都是一些ascii碼串,各個欄位的長度是不確定的。http有兩類報文:請求報文和響應報文。
請求報文
乙個http請求報文由請求行(request line)、請求頭部(header)、空行和請求資料4個部分組成,下圖給出了請求報文的一般格式。
(1)請求行
請求行由請求方法字段、url欄位和http協議版本欄位3個字段組成,它們用空格分隔。例如,get /index.html http/1.1。
http協議的請求方法有get、post、head、put、delete、options、trace、connect。這裡介紹最常用的get方法和post方法。
get:當客戶端要從伺服器中讀取文件時,使用get方法。get方法要求伺服器將url定位的資源放在響應報文的資料部分,回送給客戶端。使用get方 法時,請求引數和對應的值附加在url後面,利用乙個問號(「?」)代表url的結尾與請求引數的開始,傳遞引數長度受限制。例 如,/index.jsp?id=100&op=bind。
post:當客戶端給伺服器提供資訊較多時可以使用post方法。post方法將請求引數封裝在http請求資料中,以名稱/值的形式出現,可以傳輸大量資料,可用來傳送檔案。
(2)請求頭部
請求頭部由關鍵字/值對組成,每行一對,關鍵字和值用英文冒號「:」分隔。請求頭部通知伺服器有關於客戶端請求的資訊,典型的請求頭有:
user-agent:產生請求的瀏覽器型別。
accept:客戶端可識別的內容型別列表。
host:請求的主機名,允許多個網域名稱同處乙個ip位址,即虛擬主機。
(3)空行
最後乙個請求頭之後是乙個空行,傳送回車符和換行符,通知伺服器以下不再有請求頭。
對於乙個完整的http請求來說空行是必須的,否則伺服器會認為本次請求的資料尚未完全傳送到伺服器,處於等待狀態。
(4)請求資料
請求資料不在get方法中使用,而是在post方法中使用。post方法適用於需要客戶填寫表單的場合。與請求資料相關的最常使用的請求頭是content-type和content-length。
(5)請求示例
post:
post報文頭如下:
HTTP的報文格式 GET和POST格式解析
ttp報文是面向文字的,報文中的每乙個欄位都是一些ascii碼串,各個欄位的長度是不確定的。http有兩類報文 請求報文和響應報文。請求報文 乙個http請求報文由請求行 request line 請求頭部 header 空行和請求資料4個部分組成,下圖給出了請求報文的一般格式。1 請求行 請求行由...
HTTP的報文格式 GET和POST格式解析
http報文是面向文字的,報文中的每乙個欄位都是一些ascii碼串,各個欄位的長度是不確定的。http有兩類報文 請求報文和響應報文。請求報文 乙個http請求報文由請求行 request line 請求頭部 header 空行和請求資料4個部分組成,下圖給出了請求報文的一般格式。1 請求行 請求行...
HTTP的GET和POST格式解析
http報文是面向文字的,報文中的每乙個欄位都是一些ascii碼串,各個欄位的長度是不確定的。http有兩類報文 請求報文和響應報文。請 求報文 乙個http請求報文由請求行 request line 請求頭部 header 空行和請求資料4個部分組成,下圖給出了請求報文的一般格式。1 請求行 請求...