PUT vs POST – Διαφορά μεταξύ τους

Βασικές διαφορές μεταξύ PUT και POST

  • Η μέθοδος PUT καλείται όταν πρέπει να τροποποιήσετε έναν μεμονωμένο πόρο, ενώ η μέθοδος POST καλείται όταν πρέπει να προσθέσετε έναν θυγατρικό πόρο.
  • Οι αποκρίσεις της μεθόδου POST μπορούν να αποθηκευτούν στην προσωρινή μνήμη, αλλά δεν μπορείτε να αποθηκεύσετε προσωρινά τις απαντήσεις της μεθόδου PUT.
  • Μπορείτε να χρησιμοποιήσετε το ερώτημα UPDATE στο PUT, ενώ μπορείτε να χρησιμοποιήσετε το ερώτημα δημιουργίας στο POST.
  • Στη μέθοδο PUT, ο πελάτης αποφασίζει ποιος πόρος URI πρέπει να έχει και στη μέθοδο POST, ο διακομιστής αποφασίζει ποιος πόρος URI θα πρέπει να έχει.
  • Το PUT λειτουργεί ως συγκεκριμένο, ενώ το POST ως αφηρημένο.
  • Εάν στείλετε το ίδιο αίτημα PUT πολλές φορές, το αποτέλεσμα θα παραμείνει το ίδιο, αλλά εάν στείλετε το ίδιο αίτημα POST πολλές φορές, θα λάβετε διαφορετικά αποτελέσματα.
  • Η μέθοδος PUT είναι ανίκανη, ενώ η μέθοδος POST δεν είναι ανίκανη.
PUT vs POST
PUT vs POST

Τι είναι η μέθοδος PUT;

Η μέθοδος PUT χρησιμοποιείται για την ενημέρωση των πόρων που διατίθενται στον διακομιστή. Συνήθως, αντικαθιστά ό,τι υπάρχει στη διεύθυνση URL-στόχου με κάτι άλλο. Μπορείτε να το χρησιμοποιήσετε για να δημιουργήσετε έναν νέο πόρο ή να αντικαταστήσετε έναν υπάρχοντα. Το PUT ζητά ότι η εσωκλειόμενη οντότητα πρέπει να αποθηκευτεί κάτω από το παρεχόμενο αιτούμενο URI (Uniform Resource Identifier).

Τι είναι η μέθοδος POST;

Το POST είναι μια μέθοδος που υποστηρίζεται από HTTP και

απεικονίζει ότι ένας διακομιστής Ιστού αποδέχεται τα δεδομένα που περιλαμβάνονται στο σώμα του μηνύματος, το οποίο ζητείται. Το POST χρησιμοποιείται συχνά από το World Wide Web για την αποστολή δεδομένων που δημιουργούνται από τον χρήστη στον διακομιστή ιστού ή όταν ανεβάζετε αρχείο.

Διαφορές μεταξύ PUT και POST στα REST API

Εδώ είναι η σημαντική διαφορά μεταξύ της μεθόδου PUT και POST:

ΒΆΖΩ ΜΕΤΑ
Αυτή η μέθοδος είναι ανίκανη. Αυτή η μέθοδος δεν είναι ανίκανη.
Η μέθοδος PUT καλείται όταν πρέπει να τροποποιήσετε έναν μεμονωμένο πόρο, ο οποίος είναι ήδη μέρος της συλλογής πόρων. Η μέθοδος POST είναι κλήση όταν πρέπει να προσθέσετε έναν θυγατρικό πόρο στη συλλογή πόρων.
Το RFC-2616 απεικονίζει ότι η μέθοδος PUT στέλνει ένα αίτημα για μια κλειστή οντότητα που είναι αποθηκευμένη στο παρεχόμενο URI αιτήματος. Αυτή η μέθοδος ζητά από τον διακομιστή να αποδεχτεί την οντότητα που περιλαμβάνεται στο αίτημα.
Η σύνταξη της μεθόδου PUT είναι PUT /questions/{question-id} Η σύνταξη της μεθόδου POST είναι POST /ερωτήσεις
Δεν μπορείτε να αποθηκεύσετε προσωρινά τις απαντήσεις της μεθόδου PUT. Η απάντηση της μεθόδου POST μπορεί να αποθηκευτεί προσωρινά.
Το PUT /vi/juice/orders/1234 υποδηλώνει ότι ενημερώνετε έναν πόρο που προσδιορίζεται από το "1234". Το POST /vi/juice/orders υποδηλώνει ότι δημιουργείτε έναν νέο πόρο και επιστρέφετε ένα αναγνωριστικό για να περιγράψετε τον πόρο.
Εάν στείλετε το ίδιο αίτημα πολλές φορές, το αποτέλεσμα θα παραμείνει το ίδιο. Εάν στείλετε το ίδιο αίτημα POST περισσότερες από μία φορές, θα λάβετε διαφορετικά αποτελέσματα.
Το PUT λειτουργεί ως συγκεκριμένο. Η εργασία POST ως αφηρημένη.
Χρησιμοποιούμε το ερώτημα UPDATE στο PUT. Χρησιμοποιούμε δημιουργία ερωτήματος στο POST.
Στη μέθοδο PUT, ο πελάτης αποφασίζει ποιος πόρος URI πρέπει να έχει. Στη μέθοδο POST, ο διακομιστής αποφασίζει ποιος πόρος URI θα πρέπει να έχει.

Παράδειγμα PUT

Ακολουθεί το παράδειγμα διακομιστή ιστού μιας μεθόδου PUT:

HTTP PUT http://www.google.com/users/234

HTTP PUT http://www.google.com/users/234/accounts/567

Αίτημα

PUT /new.html HTTP/1.1
Host: example.com
Content-type: text/html
Content-length: 20

<p>New File</p>

Απαντήσεις

Εάν ο πόρος στόχος έχει τρέχουσα αναπαράσταση και έχει τροποποιηθεί με την κατάσταση της εσώκλειστης αναπαράστασης, τότε ο διακομιστής θα πρέπει να στείλει δύο απαντήσεις. Ο πρώτος κωδικός απάντησης είναι 200 ​​(ΟΚ) και ο δεύτερος κωδικός απάντησης είναι 204 (Χωρίς περιεχόμενο).

Εάν ο πόρος-στόχος δεν έχει καμία αναπαράσταση, τότε ο διακομιστής θα πρέπει να ενημερώσει τον χρήστη στέλνοντας μια απάντηση κωδικού 201 (Δημιουργήθηκε).

 HTTP/1.1 201 Created
Content-Location: /new.html

Παράδειγμα POST

Ακολουθεί ένα παράδειγμα μεθόδου POST:

HTTP POST http://www.google.com/users

HTTP POST http://www.google.com/users/234/accounts

Μια φόρμα που χρησιμοποιεί τον προεπιλεγμένο τύπο περιεχομένου εφαρμογής/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

Δοκιμή ενός API με αιτήματα PUT

Ακολουθούν τα βήματα για να δοκιμάσετε το API με αιτήματα PUT:

Δοκιμή ενός API με αιτήματα PUT
Δοκιμή ενός API με αιτήματα PUT

Βήμα 1) Ενημέρωση πόρων με αίτημα PUT.

Βήμα 2) Χρησιμοποιήστε τη μέθοδο GET για πόρους. Εάν το αίτημα PUT είναι επιτυχές, θα λάβετε νέα δεδομένα. Αυτή η μέθοδος θα αποτύχει εάν τα δεδομένα που παρέχονται στο αίτημα δεν είναι έγκυρα. Επομένως, δεν θα ενημερώσει τίποτα.

Δοκιμή ενός API με αιτήματα POST

Ακολουθούν τα βήματα για να δοκιμάσετε το API με αιτήματα POST:

Δοκιμή ενός API με αιτήματα POST

Δοκιμή ενός API με αιτήματα POST

Βήμα 1) Δημιουργήστε έναν πόρο χρησιμοποιώντας αίτημα POST και βεβαιωθείτε ότι επιστρέφει κωδικό κατάστασης 200.

Βήμα 2) Κάντε ένα αίτημα GET για αυτόν τον πόρο και αποθηκεύστε τα δεδομένα στη σωστή μορφή.

Βήμα 3) Πρέπει να προσθέσετε δοκιμές που διασφαλίζουν ότι τα αιτήματα POST αποτυγχάνουν με λανθασμένα δεδομένα.

Πλεονεκτήματα της μεθόδου PUT

Ακολουθούν τα πλεονεκτήματα/πλεονεκτήματα της χρήσης της μεθόδου PUT:

  • Σας βοηθά να αποθηκεύσετε την παρεχόμενη οντότητα κάτω από το παρεχόμενο URI
  • Εάν η παρεχόμενη οντότητα υπάρχει ήδη, τότε μπορείτε να εκτελέσετε τη λειτουργία ενημέρωσης ή μπορείτε να δημιουργήσετε με αυτό το URI.
  • Μπορείτε να δημιουργήσετε έναν πόρο όσες φορές θέλετε.
  • Η δημιουργία ενός πόρου με τη μέθοδο PUT είναι πολύ εύκολη.
  • Δεν χρειάζεται να ελέγξετε εάν ο χρήστης έχει κάνει πολλές φορές κλικ στο κουμπί υποβολής ή όχι.
  • Μπορεί να αναγνωρίσει την οντότητα που περιλαμβάνεται στο αίτημα.

Πλεονεκτήματα της μεθόδου POST

Ακολουθούν τα πλεονεκτήματα/πλεονεκτήματα της χρήσης της μεθόδου POST:

  • Αυτή η μέθοδος σάς βοηθά να προσδιορίσετε το URI πόρων.
  • Ο καθορισμός μιας νέας κεφαλίδας τοποθεσίας πόρου είναι πολύ εύκολος χρησιμοποιώντας την κεφαλίδα τοποθεσίας.
  • Μπορείτε να στείλετε ένα αίτημα για να αποδεχτείτε την οντότητα ως νέο εξαρτημένο του πόρου, ο οποίος προσδιορίζεται από το URI.
  • Μπορείτε να στείλετε δεδομένα που δημιουργούνται από τον χρήστη στον διακομιστή web.
  • Είναι πολύ χρήσιμο όταν δεν γνωρίζετε URL για να διατηρήσετε κάποιον πόρο.
  • Χρησιμοποιήστε το POST όταν χρειάζεστε τον διακομιστή, ο οποίος ελέγχει τη δημιουργία URL των πόρων σας.
  • Το POST είναι μια ασφαλής μέθοδος καθώς τα αιτήματά του δεν παραμένουν στο ιστορικό του προγράμματος περιήγησης.
  • Μπορείτε να μεταδώσετε αβίαστα μεγάλο όγκο δεδομένων χρησιμοποιώντας τη δημοσίευση.
  • Μπορείτε να διατηρήσετε τα δεδομένα απόρρητα.
  • Αυτή η μέθοδος μπορεί να χρησιμοποιηθεί για την αποστολή δυαδικών δεδομένων καθώς και δεδομένων ASCII.