Table of contents
1.
Introduction
2.
What is a PUT HTTP Request?
2.1.
Code Demonstrates the PUT Request Method
3.
What is a PATCH HTTP Request?
3.1.
Code Demonstrates the PATCH Request Method
3.1.1.
Explanation of Codes
4.
Difference Between Put and Patch
5.
Edge Cases and Detailed Explanation
6.
Frequently Asked Questions
6.1.
Is a PUT request idempotent?
6.2.
Can PATCH requests be used for creating resources?
6.3.
Should I use PUT or PATCH for updating fields selectively?
7.
Conclusion
Last Updated: Aug 13, 2025
Medium

Difference between Put and Patch Request

Author Riya Singh
0 upvote
Career growth poll
Do you think IIT Guwahati certified course can help you in your career?

Introduction

In the realm of web development, understanding the intricacies of HTTP methods is crucial for creating robust and efficient web services. Two such methods, PUT and PATCH, are often used for updating resources but serve different purposes and follow different paradigms. 

Difference between Put and Patch

This article delves into the nuances of these methods, providing a clear distinction with practical coding examples to ensure developers can implement them with precision.

What is a PUT HTTP Request?

The PUT HTTP request method is designed for updating a resource entirely. When you send a PUT request, it's expected that you're supplying the complete updated entity, and this request will either create a new resource or replace the existing one at the specified URL with the payload provided.

Code Demonstrates the PUT Request Method

Here's a simple example of a PUT request using Node.js and the Express framework:

const express = require('express');
const app = express();
app.use(express.json());

app.put('/user/:id', (req, res) => {
  const { id } = req.params;
  const { name, email } = req.body;
  // Assume updateUser is a function that updates a user's details
  updateUser(id, { name, email }).then(() => {
    res.send(`User with id ${id} updated.`);
  }).catch(error => {
    res.status(500).send(error.message);
  });
});

app.listen(3000, () => {
  console.log('Server is running on port 3000');
});

In this example, the updateUser function would be responsible for updating the user's details in the database. The req.params object contains route parameters, while req.body contains the data sent by the client.

What is a PATCH HTTP Request?

The PATCH method is used for partial updates to a resource. This means that the client sends only the data that needs to be updated, rather than the entire resource.

Code Demonstrates the PATCH Request Method

Here's how a PATCH request might look using the same technologies:

app.patch('/user/:id', (req, res) => {
  const { id } = req.params;
  // updateUserPartially is a function that updates part of a user's details
  updateUserPartially(id, req.body).then(() => {
    res.send(`User with id ${id} has been partially updated.`);
  }).catch(error => {
    res.status(500).send(error.message);
  });
});

In this scenario, updateUserPartially would only apply the changes provided in req.body to the user with the specified id.

Explanation of Codes

The provided Node.js examples illustrate the use of PUT and PATCH methods in a RESTful API. The express.json() middleware is used to parse the JSON request bodies, making it easy to access the data sent by the client. The updateUser and updateUserPartially functions would interact with a database to apply the changes, though they are not shown for brevity.

Difference Between Put and Patch

Feature  Put Patch
Update Type Complete resource update (client provides the entire resource)  Partial resource update (client provides only the changes)
Usage  Used for replacing a resource or creating a new one if it doesn't exist at the target URI Used for modifying an existing resource without replacing it entirely
Body Requirement Requires the full data of the resource, including all attributes  Requires only the attributes that are to be changed
Safety  Considered safe if the operation does not change the server's state beyond the resource modification Not safe as it modifies the server's state
Idempotency Guarantee Yes, because the outcome of applying the same PUT request multiple times is the same final resource state No, applying multiple PATCH requests with the same body may lead to different states
Support for Non-existent Resources Can create a new resource if it does not exist at the specified URI  Typically does not create a new resource; it assumes the resource already exists
HTTP Status Codes  Successful PUT requests usually return 200 (OK) or 201 (Created), if a new resource was created  PATCH requests usually return 200 (OK) if the resource is modified, 204 (No Content) if no content is returned in the response
Bandwidth Efficiency Less efficient as it sends the entire resource even if only a small part changes More efficient as it only sends the changes, reducing the amount of data transmitted
Concurrency Control  Since PUT replaces the entire resource, it can overwrite changes made by others between the time of read and write  PATCH can be more concurrency-friendly with the use of ETags to apply changes to the version of the resource that the client has seen

Edge Cases and Detailed Explanation

When implementing PUT and PATCH, consider the following edge cases:

  • If a field is omitted in a PUT request, it's assumed to be null and will be set as such in the resource.
     
  • PATCH requests must handle the case where the provided changes conflict with the current state of the resource.
     
  • PUT requests replace the entire entity, so they must be carefully used to avoid unintended data loss.

Frequently Asked Questions

Is a PUT request idempotent?

Yes, a PUT request is idempotent. Making the same PUT request multiple times will result in the same state of the resource on the server.

Can PATCH requests be used for creating resources?

While PATCH is primarily for updates, some APIs may support resource creation via PATCH if the resource does not exist.

Should I use PUT or PATCH for updating fields selectively?

For selective updates, PATCH is more appropriate as it allows partial updating of a resource.

Conclusion

Understanding the difference between PUT and PATCH is fundamental for developers working with RESTful APIs. PUT is used for complete replacements, while PATCH is for partial updates. By adhering to the principles outlined in this article and using the provided code examples as a guide, developers can ensure they're using these HTTP methods appropriately, leading to more maintainable and clear API designs.

You can refer to our guided paths on the Coding Ninjas. You can check our course to learn more about DSADBMSCompetitive ProgrammingPythonJavaJavaScript, etc. 

Also, check out some of the Guided Paths on topics such as Data Structure and AlgorithmsCompetitive ProgrammingOperating SystemsComputer Networks, DBMSSystem Design, etc., as well as some Contests, Test Series, and Interview Experiences curated by top Industry Experts.

 

Live masterclass