Theo RFC5789 (http://tools.ietf.org/html/rfc5789), đây chính xác là những gì PATCH dành cho:
Một vài ứng dụng mở rộng Hypertext Transfer Protocol (HTTP) yêu cầu một tính năng để thực hiện sửa đổi một phần tài nguyên. Phương thức HTTP PUT hiện tại chỉ cho phép thay thế hoàn toàn tài liệu. Đề xuất này thêm phương thức HTTP mới, PATCH, để sửa đổi tài nguyên HTTP hiện tại .
Sự khác biệt giữa PATCH và PUT được mô tả như sau:
Sự khác biệt giữa các yêu cầu PUT và PATCH được phản ánh trong cách máy chủ xử lý thực thể kèm theo để thay đổi tài nguyên xác định bởi các Yêu cầu-URI. Trong một yêu cầu PUT, thực thể đính kèm được coi là phiên bản được sửa đổi của tài nguyên được lưu trữ trên máy chủ gốc và khách hàng yêu cầu phiên bản đã lưu được thay thế. Tuy nhiên, với PATCH, thực thể kèm theo chứa một tập hợp hướng dẫn mô tả cách tài nguyên hiện đang cư trú trên máy chủ gốc cần được sửa đổi để tạo phiên bản mới.
Những hạn chế của POST cũng được mô tả:
Phương pháp PUT đã được xác định để ghi đè lên một nguồn tài nguyên với một cơ thể mới hoàn thành, và không thể được tái sử dụng để làm thay đổi một phần. Nếu không, proxy và bộ nhớ cache, và thậm chí cả khách hàng và máy chủ, có thể nhận được nhầm lẫn với kết quả của hoạt động. POST đã được sử dụng nhưng không khả năng tương tác rộng (cho một, không có cách nào tiêu chuẩn để khám phá hỗ trợ định dạng bản vá) [...]
tôi sẽ đề nghị bạn đọc RFC và làm cho tâm trí của riêng bạn, nhưng với tôi điều này có vẻ khá rõ ràng - yêu cầu PATCH nên được xử lý như là một phần cập nhật. (NB họ KHÔNG idempotent, không giống như PUT.)
EDIT: như đã chỉ ra bởi Eugene trong các ý kiến, mặc dù yêu cầu PATCH được "neither safe nor idempotent as defined by [RFC2616]"
, họ có thể được thực hiện như vậy:
Yêu cầu PATCH có thể được ban hành theo cách như vậy để trở thành idempotent, cũng giúp ngăn chặn các kết quả xấu từ các va chạm giữa hai yêu cầu PATCH trên trên cùng một tài nguyên trong một khung thời gian tương tự. Va chạm từ nhiều yêu cầu PATCH có thể nguy hiểm hơn Va chạm PUT vì một số định dạng bản vá cần phải hoạt động từ điểm cơ sở đã biết hoặc nếu không chúng sẽ làm hỏng tài nguyên. Khách hàng sử dụng loại ứng dụng bản vá này NÊN sử dụng yêu cầu có điều kiện sao cho yêu cầu sẽ thất bại nếu tài nguyên đã được cập nhật kể từ khi khách hàng truy cập tài nguyên lần cuối. Ví dụ: khách hàng có thể sử dụng ETF mạnh [RFC2616] trong tiêu đề If-Match trên yêu cầu PATCH .
@prashanath u có bất kỳ giải pháp – CoronaPintu