Traducción en curso

El método HTTP POST envía datos al servidor. El tipo del cuerpo de la solicitud es indicada por la cabecera  Content-Type.
 
La diferencia entre PUTPOST es que PUT es idempotente: llamarlo una o muchas veces sucesivamente tiene el mismo efecto (eso no es un efecto secundario), mientras que sucesivos POST idénticos pueden tener efectos adicionales, como pasar una orden muchas veces.
 

Una solicitud POST es tipicamente enviada por un HTML form y resulta en un cambio en el servidor. En este caso, el content type es seleccionado poniendo la cadena de texto adecuada en el atributo enctype del elemento <form> o el atributo formenctype  del elemento <input><button> elementos:

  • application/x-www-form-urlencoded: Los valores son codificados en tuplas de valores llaves separados por '&', con un '='  entre la llave y el valor. Caracteres no-Alfanumericos son percent encoded: Ésta es la razón de porque este tipo no es adecuado para usarse con datos binarios (usar multipart/form-data en su lugar)
  • multipart/form-data
  • text/plain

Cuando la solicitud POST es enviada por otro método distinto a un formulario HTML  — por ejemplo mediante una XMLHttpRequest — el cuerpo puede aceptar cualquier tipo. Como se describe en la especificación HTTP 1.1, el método POST está diseñado para permitir un método uniforme que cubra las siguientes funciones:

  • Modificación de recursos existentes.
  • Publicar un mensage en un tablón de anuncios, grupo de noticias, lista de correos, o grupos similares de artículos;
  • Proveer un conjunto de datos, como resultado del envío de un formulario, a un proceso data-handling.
  • Extender una base de datos a traves de una operación de concatenación.
Petición con cuerpo
Respuesta válida con cuerpo
Seguro No
Idempotente No
Cacheable Sólo si incluye nueva información
Permitido en HTML forms

Sintaxis

POST /index.html

Ejemplos

Un simple formulario empleando el tipo de contenido application/x-www-form-urlencoded:

POST / HTTP/1.1
Host: foo.com
Content-Type: application/x-www-form-urlencoded
Content-Length: 13

say=Hi&to=Mom

Un formulario usando el tipo de contenido multipart/form-data:

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

Especificaciones

Specification Title
RFC 7231, section 4.3.3: POST Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content

FeatureChromeEdgeFirefoxInternet ExplorerOperaSafari
Soporte básico Si Si Si Si Si Si
FeatureAndroid webviewChrome para AndroidEdge mobileFirefox para AndroidIE mobileOpera AndroidiOS Safari
Soporte básico Si Si Si Si Si Si Si

Ver también

Etiquetas y colaboradores del documento

Etiquetas: 
 Colaboradores en esta página: mtnalonso, Juenesis
 Última actualización por: mtnalonso,