HTTP封包是面向文本的,封包中的每個字段都是一些ASCLL碼串。
分為請求封包和響應封包
請求封包由請求行(request lin) 請求頭(header) 空行 請求資料 組成
1請求行request lin :是由方法名稱 URL HTTP協定版本組成 (如 GET android 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.空行
最後一個請求頭之後是一個空行,發送回車符和換行符。通知伺服器一下不在有請求。
4.請求資料
請求資料不在GET方法中使用,在Post方法中使用, 與請求資料相關的最常用的請求頭是Content-Type和Content-Length.