協定頭和協定體以"\r\n\r\n"分隔
協定體的内容通過content-length的長度擷取
附件上傳時如下
POST/logsys/home/uploadIspeedLog!doDefault.html HTTP/1.1
Accept: text/plain, */*
Accept-Language: zh-cn
Host: 192.168.24.56
Content-Type:multipart/form-data;boundary=-----------------------------7db372eb000e2
User-Agent: WinHttpClient
Content-Length: 3693
Connection: Keep-Alive
-------------------------------7db372eb000e2
Content-Disposition: form-data; name="file"; filename="kn.jpg"
Content-Type: image/jpeg
(此處省略jpeg檔案二進制資料...)
-------------------------------7db372eb000e2--
紅色字型部分就是協定的頭,其中,content-type是必須的,它包括一個類似标志性質的名為boundary的标志,它可以是随便輸入的字元串。
Content-Length: 3693 ,這裡的3693是要上傳檔案的總長度。如果設定Transfer-Encoding: chunked可以不用設定Content-Length
綠色字型部分就是需要上傳的資料,可以是文本,也可以是圖檔等。資料内容前面需要有Content-Disposition, Content-Type以及Content-Transfer-Encoding等說明字段。
最後的紫色部分就是協定的結尾了。