request payload


最近在調試代碼時發現有Request Payload的情況,從網上查一些文件,也都有較多的描述。下面我只是說明一下大家沒有注意的地方

關於HTTP請求,都是通過URL及參數向后台發送數據。主要方式有GET, POST。對這兩種方式,GET的參數都會放在URL的后面,一般稱之為query參數。POST的都放在HTTP的報文BODY里,可以query參數的形式,也可以multipart格式,還有一種JSON格式,即Request Payload格式。

multipart, Request Payload是通過request Header中的ContentType區分的:

multipart格式:ContentType: multipart/form-data;boundary=--xxxxxxx, 注意對multipart的格式都要有boundary做為BODY中的參數分隔符,(關於該格式的講解以后再寫)

Request Payload格式:ContentType: application/json

在后台的處理中對這三種格式的處理是不相同的。

GET格式都在URL后面,以key1=value1&key2=value2的KV格式存在,且不會很長(協議規定為1024個字節,但現在瀏覽器都會適當加長一些)。后台處理這種參數時可以使用同步處理,因為報文頭收到后參數也就收全了。

POST時參數也可以使用上面的KV格式存在,但是會放在報文體中。當數據量不大時,一般也會和報文頭一起收到。但數據量大的時會被拆分到多個報文中。因此必須使用異步方式收取。收全后處理同GET相同。

對於multipart格式,需要使用流方式邊收邊解析,因為有可能是大文件上傳。

對於RequestPayload格式,可能也是異步發送(這個沒有驗證過),但數據量一般不會太大,因此它是一個JSON格式,因此必須等報文收全后才能處理。目前對JSON格式的支持比較普遍,都有相關的函數來解析JSON字符串,直接生成JSON對象,因此這種方式也是最方便的。特別是使用nodejs server時就可以直接在代碼中使用了。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM