HTTP Post提交資料的幾種型別

2021-09-14 03:11:12 字數 1924 閱讀 4276

http header裡的content-type一般有這三種:

multipart/form-data: 資料被編碼為一條訊息,頁上的每個控制項對應訊息中的乙個部分。

text/plain: 資料以純文字形式(text/json/xml/html)進行編碼,其中不含任何控制項或格式字元。postman軟體裡標的是raw。

(1)、http 協議是以ascii 碼傳輸,建立在 tcp/ip 協議之上的應用層規範。規範把 http 請求分為三個部分:狀態行、請求頭、訊息主體。

(2)、協議規定 post 提交的資料必須放在訊息主體(entity-body)中,但協議並沒有規定資料必須使用什麼編碼方式。實際上,開發者完全可以自己決定訊息主體的格式,只要最後傳送的 http 請求滿足上面的格式就可以。

(3)、資料傳送出去,還要服務端解析成功才有意義。一般服務端語言如 php、python 等,以及它們的 framework,都內建了自動解析常見資料格式的功能。服務端通常是根據請求頭(headers)中的content-type 欄位來獲知請求中的訊息主體是用何種方式編碼,再對主體進行解析。

此時可以看到,

title=test&sub%5b%5d=1&sub%5b%5d=2&sub%5b%5d=3

這又是乙個常見的 post 資料提交的方式。我們使用表單上傳檔案時,必須讓表單的enctype 等於 multipart/form-data。直接來看乙個請求示例:

content-type:boundary屬性 用於分割不同的字段,為了避免與正文內容重複,boundary 很長很複雜。然後 content-type 裡指明了資料是以 multipart/form-data 來編碼,本次請求的 boundary 是什麼內容。訊息主體裡按照字段個數又分為多個結構類似的部分,每部分都是以--boundary開始,緊接著是內容描述資訊,然後是回車,最後是字段具體內容(文字或二進位制)。如果傳輸的是檔案,還要包含檔名和檔案型別資訊。訊息主體最後以--boundary--標示結束。 關於 multipart/form-data 的詳細定義,請前往 rfc1867 檢視。

這種方式一般用來上傳檔案,各大服務端語言對它也有著良好的支援。

//請求資料

var data = ;

//請求資料序列化處理

json.stingify(data);

//結果:;

http post提交陣列

方式一 requestparam方式 服務提供方用 requestparam註解接收引數,引數型別為long陣列 apioperation value tags notes response public object convert requestparam value id required t...

Http POST請求資料提交格式

做開發時,會用到post提交資料,原來是用httpmime包來處理資料封裝,但為了乙個小需求,引入乙個幾十kb的jar,總感覺不值,學習一下post請求的格式,自己順便練下手,實現乙個 服務端通常是根據請求頭 headers 中的 content type 欄位來獲知請求中的訊息主體是用何種方式編碼...

HTTP POST和GET的提交方式

向伺服器提交資料有兩種方式,post和get。兩者的區別主要有三點,安全性 長度限制 資料結構。其中get請求安全性相比較而言較差,資料長度受瀏覽器位址列限制,沒有方法體。兩種都是較為重要的 資料提交方式。現簡單介紹一下三種post和get的提交方式。無論是哪種方法實現post和get,get 的訪...