1. 程式人生 > 其它 >3-HTTP 請求報文

3-HTTP 請求報文

1. HTTP 請求報文介紹

HTTP最常見的請求報文有兩種:

  1. GET 方式的請求報文
  2. POST 方式的請求報文

說明:

    1. GET: 獲取web伺服器資料
    1. POST: 向web伺服器提交資料

2. HTTP GET 請求報文分析

HTTP GET 請求報文效果圖:

GET 請求原始報文說明:

GET / HTTP/1.1\r\n
Host: www.itcast.cn\r\n  
Connection: keep-alive\r\n
Upgrade-Insecure-Requests: 1\r\n
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36\r\n
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8\r\n
Accept-Encoding: gzip, deflate\r\n
Accept-Language: zh-CN,zh;q=0.9\r\n
Cookie: pgv_pvi=1246921728; \r\n
\r\n  (請求頭資訊後面還有一個單獨的’\r\n’不能省略)

說明:

每項資料之間使用:\r\n

3. HTTP POST 請求報文分析

HTTP POST 請求報文效果圖:

請求體效果圖:

POST 請求報文說明:

---- 請求行 ----
POST /xmweb?host=mail.itcast.cn&_t=1542884567319 HTTP/1.1 # POST請求方式 請求資源路徑 HTTP協議版本
---- 請求頭 ----
Host: mail.itcast.cn # 伺服器的主機地址和埠號,預設是80
Connection: keep-alive # 和服務端保持長連線
Content-Type: application/x-www-form-urlencoded  # 告訴服務端請求的資料型別
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36 # 客戶端的名稱
---- 空行 ----
---- 請求體 ----
username=hello&pass=hello # 請求引數

4. 小結

一個HTTP請求報文可以由請求行、請求頭、空行和請求體4個部分組成。
請求行是由三部分組成:
                  請求方式
                  請求資源路徑
                  HTTP協議版本
                  GET方式的請求報文沒有請求體,只有請求行、請求頭、空行組成。
POST方式的請求報文可以有請求行、請求頭、空行、請求體四部分組成,注意:POST方式可以允許沒有請求體,但是這種格式很少見。