POST
åºçº¿
广æ³å¯ç¨
èª 2015å¹´7æ èµ·ï¼æ¤ç¹æ§å·²å¨ä¸»æµæµè§å¨ä¸å¾å°æ¯æï¼å¯å¨å¤§å¤æ°è®¾å¤åæµè§å¨çæ¬ä¸æ£å¸¸ä½¿ç¨ã
HTTP POST æ¹æ³åéæ°æ®ç»æå¡å¨ã请æ±ä¸»ä½çç±»åç± Content-Type æ 头æå®ã
PUT å POST æ¹æ³çåºå«æ¯ï¼PUT æ¹æ³æ¯å¹ççï¼è°ç¨ä¸æ¬¡ä¸è¿ç»è°ç¨å¤æ¬¡æææ¯ç¸åçï¼å³æ²¡æå¯ä½ç¨ï¼ï¼èè¿ç»è°ç¨å¤æ¬¡ç¸åç POST æ¹æ³å¯è½ä¼æå¯ä½ç¨ï¼æ¯å¦å¤æ¬¡æäº¤åä¸è®¢åã
ä¸ä¸ª POST 请æ±é常æ¯éè¿ HTML 表ååéçï¼å¹¶å¯¼è´æå¡å¨çç¸åºä¿®æ¹ãå¨è¿ç§æ
åµä¸ï¼å
容类åï¼content typeï¼æ¯éè¿å¨ <form> å
ç´ ä¸è®¾ç½®æ£ç¡®ç enctype 屿§ï¼ææ¯å¨ <input> å <button> å
ç´ ä¸è®¾ç½® formenctype 屿§æ¥éæ©çï¼
application/x-www-form-urlencodedï¼æ°æ®è¢«ç¼ç æä»¥'&'åéçé®å¼å¯¹ï¼åæ¶ä»¥'='åéé®åå¼ãé®åå¼ä¸éåæ¯ææ°åçå符ä¼è¢« URL ç¼ç ï¼è¿ä¹æ¯è¿ç§ç±»å䏿¯æäºè¿å¶æ°æ®çåå ï¼åºä½¿ç¨multipart/form-data代æ¿ï¼ãmultipart/form-dataï¼æ¯ä¸ªå¼æ¯å¨ä¸åæ°æ®ï¼â主ä½é¨åâï¼ä¸åéçï¼ç±ç¨æ·ä»£çæå®çåé符ï¼âboundaryâï¼å°æ¯ä¸ªé¨åå离å¼ãé®å¼å¨æ¯ä¸ªé¨åçContent-Dispositionæ 头ä¸ç»åºãtext/plain
å½ POST è¯·æ±æ¯éè¿é¤ HTML 表åä¹å¤çæ¹å¼ï¼ä¾å¦ä½¿ç¨ XMLHttpRequestï¼åéæ¶ï¼è¯·æ±ä¸»ä½å¯ä»¥æ¯ä»»ä½ç±»åãæ£å¦ HTTP 1.1 è§è䏿æè¿°ç飿 ·ï¼POST 被设计ç¨äºä»¥ç»ä¸çæ¹æ³æ¥æ¶µç以ä¸åè½ï¼
- å¯¹ç°æèµæºè¿è¡æ³¨é
- å¨å ¬åæ¿ï¼æ°é»ç»ï¼é®ä»¶å表æç±»ä¼¼çæç« ç»ä¸å叿¶æ¯;
- éè¿æ³¨åæ¨¡æ¿æ°å¢ç¨æ·;
- åæ°æ®å¤çè¿ç¨æä¾ä¸æ¹æ°æ®ï¼ä¾å¦æäº¤ä¸ä¸ªè¡¨å;
- éè¿è¿½å æä½ï¼æ©å±æ°æ®åºæ°æ®ã
| è¯·æ±æ¯å¦æä¸»ä½ | æ¯ |
|---|---|
| æåçååºæ¯å¦æä¸»ä½ | æ¯ |
| å®å ¨ | å¦ |
| å¹ç | å¦ |
| å¯ç¼å | ä» å¨å å«è¶³å¤æ°çä¿¡æ¯æ¶ |
| å è®¸å¨ HTML 表åä¸ä½¿ç¨ | å 许 |
è¯æ³
POST /test
示ä¾
使ç¨é»è®¤ç application/x-www-form-urlencoded ä½ä¸º content type çç®å表åï¼
POST /test HTTP/1.1
Host: foo.example
Content-Type: application/x-www-form-urlencoded
Content-Length: 27
field1=value1&field2=value2
ä½¿ç¨ multipart/form-data ä½ä¸º content type ç表åï¼
POST /test HTTP/1.1
Host: foo.example
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
--boundary--
è§è
| è§è |
|---|
| HTTP Semantics > # POST > |