?
本文檔使用 php中文網(wǎng)手冊(cè) 發(fā)布
POST
將數(shù)據(jù)發(fā)送到服務(wù)器。請(qǐng)求主體的類(lèi)型由Content-Type
標(biāo)題指示。
PUT和POST
之間的差PUT
和POST
是,PUT
是冪等:調(diào)用它一次或多次連續(xù)具有相同的效果(也就是沒(méi)有側(cè)面的效果),在那里連續(xù)的相同的POST
可具有額外的效果,如通過(guò)順序數(shù)次。
POST
請(qǐng)求經(jīng)由通常發(fā)送 HTML 形式在服務(wù)器上的變化和結(jié)果。在這種情況下,內(nèi)容類(lèi)型是通過(guò)將適當(dāng)?shù)淖址谒xenctype
的屬性的<form>
元件或所述的formenctype
屬性<input>
或<button>
元素:
application/x-www-form-urlencoded
:值被編碼在由分離鍵-值元組'&'
,具有'='
鍵和值之間。非字母數(shù)字字符是百分比編碼的:這就是為什么這種類(lèi)型不適合與二進(jìn)制數(shù)據(jù)一起使用的原因(用來(lái)multipart/form-data
代替)
multipart/form-data
text/plain
當(dāng)通過(guò) HTML 表單以外的方法發(fā)送POST
請(qǐng)求時(shí) —— 例如通過(guò)XMLHttpRequest
- 可以采用任何類(lèi)型的主體。如 HTTP 1.1規(guī)范中所述,POST
旨在允許統(tǒng)一的方法覆蓋以下功能:
現(xiàn)有資源的標(biāo)注
向公告板,新聞組,郵件列表或類(lèi)似的文章組發(fā)布信息;
向數(shù)據(jù)處理過(guò)程提供一組數(shù)據(jù),例如提交表單的結(jié)果;
通過(guò)追加操作擴(kuò)展數(shù)據(jù)庫(kù)。
請(qǐng)求具有正文 | 是 |
---|---|
成功的回應(yīng)有身體 | 是 |
安全 | 沒(méi)有 |
冪等 | 沒(méi)有 |
可緩存 | 僅在包含新鮮度信息的情況下 |
在HTML表單中允許 | 是 |
POST /index.html
使用默認(rèn)的application/x-www-form-urlencoded
內(nèi)容類(lèi)型的簡(jiǎn)單表單:
POST / HTTP/1.1Host: foo.com Content-Type: application/x-www-form-urlencoded Content-Length: 13say=Hi&to=Mom
使用multipart/form-data
內(nèi)容類(lèi)型的表單:
POST /test.html HTTP/1.1 Host: example.org Content-Type: multipart/form-data;boundary="boundary" --boundary Content-Disposition: form-data; name="field1" value1 --boundary Content-Disposition: form-data; name="field2"; filename="example.txt" value2
規(guī)范 | 標(biāo)題 |
---|---|
RFC 7231,第4.3.3節(jié):POST | 超文本傳輸協(xié)議(HTTP / 1.1):語(yǔ)義和內(nèi)容 |
Feature | Chrome | Edge | Firefox | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|---|
Basic Support | (Yes) | (Yes) | (Yes) | (Yes) | (Yes) | (Yes) |
Feature | Android | Chrome for Android | Edge mobile | Firefox for Android | IE mobile | Opera Android | iOS Safari |
---|---|---|---|---|---|---|---|
Basic Support | (Yes) | (Yes) | (Yes) | (Yes) | (Yes) | (Yes) | (Yes) |
Content-Type
Content-Disposition