PUT vs POST: diferencia entre ellos
Diferencias clave entre PUT y POST
- El mรฉtodo PUT se llama cuando tiene que modificar un solo recurso, mientras que el mรฉtodo POST se llama cuando tiene que agregar un recurso secundario.
- Las respuestas del mรฉtodo POST se pueden almacenar en cachรฉ, pero no se pueden almacenar en cachรฉ las respuestas del mรฉtodo PUT.
- Puede utilizar la consulta ACTUALIZAR en PUT, mientras que puede utilizar la consulta Crear en POST.
- En el mรฉtodo PUT, el cliente decide quรฉ recurso URI debe tener, y en el mรฉtodo POST, el servidor decide quรฉ recurso URI debe tener.
- PUT funciona como especรญfico, mientras que POST funciona como abstracto.
- Si envรญa la misma solicitud PUT varias veces, el resultado seguirรก siendo el mismo, pero si envรญa la misma solicitud POST varias veces, recibirรก resultados diferentes.
- El mรฉtodo PUT es idempotente, mientras que el mรฉtodo POST no es idempotente.

ยฟQuรฉ es el mรฉtodo PUT?
El mรฉtodo PUT se utiliza para actualizar los recursos disponibles en el servidor. Normalmente, reemplaza lo que existe en la URL de destino con otra cosa. Puede usarlo para crear un nuevo recurso o sobrescribir uno existente. PUT solicita que la entidad adjunta se almacene bajo el URI (Identificador uniforme de recursos) solicitado proporcionado.
ยฟQuรฉ es el mรฉtodo POST?
POST es un mรฉtodo compatible con HTTP y
Representa que un servidor web acepta los datos incluidos en el cuerpo del mensaje que se solicita. La World Wide Web suele utilizar POST para enviar datos generados por el usuario al servidor web o cuando se carga un archivo.
Diferencias entre PUT y POST en las API REST
Aquรญ estรก la diferencia importante entre el mรฉtodo PUT y POST:
| PUT | PUBLICAR |
|---|---|
| Este mรฉtodo es idempotente. | Este mรฉtodo no es idempotente. |
| El mรฉtodo PUT se llama cuando tiene que modificar un รบnico recurso, que ya forma parte de la colecciรณn de recursos. | El mรฉtodo POST se llama cuando tiene que agregar un recurso secundario en la colecciรณn de recursos. |
| RFC-2616 describe que el mรฉtodo PUT envรญa una solicitud para una entidad adjunta almacenada en el URI de solicitud proporcionado. | Este mรฉtodo solicita al servidor que acepte la entidad incluida en la solicitud. |
| La sintaxis del mรฉtodo PUT es PUT /questions/{question-id} | La sintaxis del mรฉtodo POST es POST /preguntas |
| No puede almacenar en cachรฉ las respuestas del mรฉtodo PUT. | La respuesta del mรฉtodo POST se puede almacenar en cachรฉ. |
| PUT /vi/juice/orders/1234 indica que estรก actualizando un recurso identificado por โ1234โ. | POST /vi/juice/orders indica que estรก creando un nuevo recurso y devuelve un identificador para describir el recurso. |
| Si envรญa la misma solicitud varias veces, el resultado seguirรก siendo el mismo. | Si envรญa la misma solicitud POST mรกs de una vez, recibirรก resultados diferentes. |
| PUT funciona de forma especรญfica. | POST trabajo como resumen. |
| Usamos la consulta ACTUALIZAR en PUT. | Usamos crear consulta en POST. |
| En el mรฉtodo PUT, el cliente decide quรฉ recurso URI debe tener. | En el mรฉtodo POST, el servidor decide quรฉ recurso URI debe tener. |
Ejemplo de poner
Aquรญ estรก el ejemplo de servidor web de un mรฉtodo PUT:
HTTP PUT http://www.google.com/users/234
HTTP PUT http://www.google.com/users/234/accounts/567
Solicitar retiro
PUT /new.html HTTP/1.1 Host: example.com Content-type: text/html Content-length: 20 <p>New File</p>
Respuestas
Si el recurso de destino tiene representaciรณn actual y se modifica con el estado de la representaciรณn adjunta, entonces el servidor debe enviar dos respuestas. El primer cรณdigo de respuesta es 200 (OK) y el segundo cรณdigo de respuesta es 204 (Sin contenido).
Si el recurso de destino no tiene ninguna representaciรณn, entonces el servidor debe informar al usuario enviando una respuesta de cรณdigo 201 (Creado).
HTTP/1.1 201 Created Content-Location: /new.html
Ejemplo de ENVรO
A continuaciรณn se muestra un ejemplo del mรฉtodo POST:
POST HTTP http://www.google.com/users
POST HTTP http://www.google.com/users/234/accounts
Un formulario que utiliza el tipo de contenido predeterminado application/x-www-form-urlencoded:
POST /test HTTP/1.1 Host: abc.example Content-Type: application/x-www-form-urlencoded Content-Length: 40 field1=value1&field2=value2
Probando una API con solicitudes PUT
Estos son los pasos para probar la API con solicitudes PUT:

Paso 1) Actualizar recursos con solicitud PUT.
Paso 2) Utilice el mรฉtodo GET para el recurso. Si la solicitud PUT tiene รฉxito, recibirรก nuevos datos. Este mรฉtodo fallarรก si los datos proporcionados en la solicitud no son vรกlidos. Por tanto, no actualizarรก nada.
Probando una API con solicitudes POST
Estos son los pasos para probar la API con solicitudes POST:
Paso 1) Cree un recurso mediante la solicitud POST y asegรบrese de que devuelva el cรณdigo de estado 200.
Paso 2) Realice una solicitud GET para ese recurso y guarde los datos en el formato correcto.
Paso 3) Debe agregar pruebas que garanticen que las solicitudes POST fallen con datos incorrectos.
Ventajas del mรฉtodo PUT
Aquรญ hay ventajas y beneficios de usar el mรฉtodo PUT:
- Le ayuda a almacenar la entidad proporcionada bajo el URI proporcionado
- Si la entidad suministrada ya existe, puede realizar la operaciรณn de actualizaciรณn o puede crearla con esa URI.
- Puedes crear un recurso tantas veces como quieras.
- Crear un recurso con el mรฉtodo PUT es muy sencillo.
- No es necesario comprobar si el usuario ha hecho clic en el botรณn Enviar varias veces o no.
- Puede identificar la entidad adjunta a la solicitud.
Ventajas del mรฉtodo POST
Aquรญ hay ventajas y beneficios de usar el mรฉtodo POST:
- Este mรฉtodo le ayuda a determinar el URI del recurso.
- Especificar un nuevo encabezado de ubicaciรณn de recurso es muy fรกcil usando el encabezado de ubicaciรณn.
- Puede enviar una solicitud para aceptar la entidad como un nuevo subordinado del recurso, que se identifica mediante el URI.
- Puede enviar datos generados por el usuario al servidor web.
- Es muy รบtil cuando no conoces la URL para conservar algรบn recurso.
- Utilice POST cuando necesite el servidor, que controla la generaciรณn de URL de sus recursos.
- POST es un mรฉtodo seguro ya que sus solicitudes no permanecen en el historial del navegador.
- Puede transmitir sin esfuerzo una gran cantidad de datos mediante la publicaciรณn.
- Puede mantener los datos privados.
- Este mรฉtodo se puede utilizar para enviar datos binarios y ASCII.
