HTTP協議請求與迴應報文格式總結
協議是指計算機通訊網路中兩臺計算機之間進行通訊所必須共同遵守的規定或規則,超文字傳輸協議(HTTP)是一種通訊協議,它允許將超文字標記語言(HTML)文件從Web伺服器傳送到客戶端的瀏覽器
一個http請求報文由
- 請求行(request line)
- 訊息頭部(header)
- 空行
- 請求正文
四部分組成
1)請求行請求行由請求方法欄位、URL欄位和HTTP協議版本欄位,組成,它們用空格分隔,例如:GET /index.html HTTP/1.1
HTTP協議的請求方法有GET、POST、HEAD、PUT、DELETE、OPTIONS、TRACE、CONNECT。這裡介紹最常用的GET和POST方法;
GET:當client要從server中讀取資訊時,使用GET方法。GET方法要求伺服器將URL定位的資源放在響應報文的主體部分,回送給client。
使用GET方法時,請求引數和對應的值附加在URL後面,利用一個問號("?")代表URL的結尾與請求引數的開始,傳遞引數長度受限制,例如: /index.jsp?id=1&op=csdn
POST:當client給伺服器提供資訊較多時, 使用POST方法。POST方法將請求引數封裝在HTTP請求資料中,以key/value的形式出現,可以傳遞大量資料,可用來傳遞檔案
所以:理論上post是可以傳無限大引數的,get由於受到請求地址的長度限制只能傳送有限的資料。
2)訊息頭部
請求頭部由key/value鍵值對組成,每行一對,key和value用冒號":"分隔,請求頭部通知伺服器有關於client端的請求資訊,典型的請求頭:
-
-
- User-Agent:產生請求的瀏覽器型別
- Accept:client端可識別的內容型別列表
- Host:請求的主機名,允許多個域名同處一個ip地址,即虛擬主機
-
3)、空行
最後一個請求頭之後是一個空行,傳送回車符和換行符,通知伺服器請求頭結束。
對於一個完整的http請求來說空行是必須的,否則伺服器會任務本次請求的資料尚未完全傳送到server,處於等待狀態
4)、請求正文
請求資料不在GET方法中使用,而是在POST中使用。POST方法適用於需要client填寫表單的場合,與請求資料相關的最常用的請求頭是Content-Type 和Content-Length
request(請求)
請求方式 請求資源 請求協議、請求協議版本(request_method request-uri request-protocol request_protocol)
請求頭:請求元素:元素值<換行>
...<換行><換行>
請求內容:主題內容
response(響應)
響應行:響應協議 /響應協議版本 響應嗎 響應嗎的描述資訊<換行>
響應頭:請求元素:元素值<換行>
...<換行><換行>
響應內容:主題內容
響應的資訊本人有對應的程式截圖如下