HTTP之請求消息Request

客戶端發送一個HTTP請求到服務器的請求消息包括如下格式:

請求行(request line)、請求頭部(header)、空行和請求數據四個部分組成。

請求行以一個方法符號開頭,以空格分開,後面跟着請求的URI和協議的版本。
Get請求例子,使用Charles抓取的request:html

GET /562f25980001b1b106000338.jpg HTTP/1.1
Host    img.mukewang.com
User-Agent    Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.106 Safari/537.36
Accept    image/webp,image/*,*/*;q=0.8
Referer    http://www.imooc.com/
Accept-Encoding    gzip, deflate, sdch
Accept-Language    zh-CN,zh;q=0.8

第一部分:請求行,用來講明請求類型,要訪問的資源以及所使用的HTTP版本.
GET說明請求類型爲GET,[/562f25980001b1b106000338.jpg]爲要訪問的資源,該行的最後一部分說明使用的是HTTP1.1版本。web

第二部分:請求頭部,緊接着請求行(即第一行)以後的部分,用來講明服務器要使用的附加信息
從第二行起爲請求頭部,HOST將指出請求的目的地.User-Agent,服務器端和客戶端腳本都能訪問它,它是瀏覽器類型檢測邏輯的重要基礎.該信息由你的瀏覽器來定義,而且在每一個請求中自動發送等等瀏覽器

第三部分:空行,請求頭部後面的空行是必須的
即便第四部分的請求數據爲空,也必須有空行。服務器

第四部分:請求數據也叫主體,能夠添加任意的其餘數據。
這個例子的請求數據爲空。app

POST請求例子,使用Charles抓取的request:post

POST / HTTP1.1
Host:www.wrox.com
User-Agent:Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022)
Content-Type:application/x-www-form-urlencoded
Content-Length:40
Connection: Keep-Alive

name=Professional%20Ajax&publisher=Wiley

第一部分:請求行,第一行明瞭是post請求,以及http1.1版本。
第二部分:請求頭部,第二行至第六行。
第三部分:空行,第七行的空行。
第四部分:請求數據,第八行。url

相關連接

相關文章
相關標籤/搜索