Sobes.tech
Senior

Ποια είναι η διαφορά μεταξύ των μεθόδων PUT και POST; Πώς συμπεριφέρονται όταν αποστέλλεται ξανά το ίδιο αίτημα; Τι κάνει το PATCH;

sobes.tech AI

Απάντηση από AI

Οι μέθοδοι HTTP PUT και POST διαφέρουν ως προς τη σημασιολογία και τη συμπεριφορά:

  • PUT — μέθοδος ιδιομεταβλητή, χρησιμοποιείται για την πλήρη ενημέρωση ενός πόρου στη συγκεκριμένη διεύθυνση URL. Η επανυποβολή της ίδιας αίτησης PUT δεν θα αλλάξει το αποτέλεσμα, καθώς ο πόρος θα αντικατασταθεί με τα ίδια δεδομένα.

  • POST — μη ιδιομεταβλητή μέθοδος, συνήθως χρησιμοποιείται για τη δημιουργία νέων πόρων ή την εκτέλεση ενεργειών. Η επανυποβολή της αίτησης POST μπορεί να οδηγήσει σε διπλότυπα ή στην επανάληψη της ενέργειας.

  • PATCH — χρησιμοποιείται για μερική ενημέρωση του πόρου, αποστέλλοντας μόνο τα τροποποιημένα πεδία. Σε αντίθεση με το PUT, που αντικαθιστά ολόκληρο τον πόρο, το PATCH εφαρμόζει τις αλλαγές στο υπάρχον αντικείμενο.

Παράδειγμα:

PUT /users/123
{
  "name": "Иван",
  "age": 30
}

PATCH /users/123
{
  "age": 31
}

POST /users
{
  "name": "Иван",
  "age": 30
}

Η επανυποβολή του PUT με τα ίδια δεδομένα δεν θα αλλάξει τον πόρο, η επανυποβολή του POST θα δημιουργήσει νέο χρήστη, και η επανυποβολή του PATCH θα ενημερώσει ξανά την ηλικία.