Τι είναι το PUT;
Η μέθοδος PUT χρησιμοποιείται για την ενημέρωση του διαθέσιμου πόρου στο διακομιστή. Συνήθως, αντικαθιστά ό, τι υπάρχει στη διεύθυνση URL προορισμού με κάτι άλλο. Μπορείτε να τον χρησιμοποιήσετε για να δημιουργήσετε έναν νέο πόρο ή να αντικαταστήσετε έναν υπάρχοντα. Το PUT ζητάει η κλειστή οντότητα να αποθηκευτεί κάτω από το παρεχόμενο URI (Uniform Resource Identifier).
Σε αυτό το σεμινάριο, θα μάθετε:
- Τι είναι το PUT;
- Τι είναι το POST;
- Παράδειγμα PUT
- Παράδειγμα POST
- Διαφορά μεταξύ PUT και POST
- Δοκιμή ενός API με αιτήματα PUT
- Δοκιμή ενός API με αιτήματα POST
- Πλεονεκτήματα της μεθόδου PUT
- Πλεονεκτήματα της μεθόδου POST
Τι είναι το POST;
Το POST είναι μια μέθοδος που υποστηρίζεται από HTTP και
απεικονίζει ότι ένας διακομιστής ιστού δέχεται τα δεδομένα που περιλαμβάνονται στο σώμα του μηνύματος, το οποίο ζητείται. Το POST χρησιμοποιείται συχνά από το World Wide Web για την αποστολή δεδομένων που δημιουργούνται από τον χρήστη στον διακομιστή ιστού ή όταν ανεβάζετε αρχείο.
ΒΑΣΙΚΕΣ ΔΙΑΦΟΡΕΣ:
- Η μέθοδος PUT καλείται όταν πρέπει να τροποποιήσετε έναν μόνο πόρο ενώ η μέθοδος POST καλείται όταν πρέπει να προσθέσετε έναν θυγατρικό πόρο.
- Η απόκριση μεθόδου PUT μπορεί να αποθηκευτεί στην κρυφή μνήμη, αλλά δεν μπορείτε να αποθηκεύσετε προσωρινά τις απαντήσεις της μεθόδου PUT
- Μπορείτε να χρησιμοποιήσετε το ερώτημα ΕΝΗΜΕΡΩΣΗΣ στο PUT ενώ μπορείτε να χρησιμοποιήσετε το ερώτημα δημιουργίας στο POST.
- Στη μέθοδο PUT, ο πελάτης αποφασίζει ποιος πόρος URI θα πρέπει να έχει, και στη μέθοδο POST, ο διακομιστής αποφασίζει ποιος πόρος URI θα πρέπει να έχει.
- Το PUT λειτουργεί ως ειδικό, ενώ το POST λειτουργεί ως αφηρημένο.
- Εάν στείλετε το ίδιο αίτημα PUT πολλές φορές, το αποτέλεσμα θα παραμείνει το ίδιο, αλλά εάν στείλετε το ίδιο αίτημα POST πολλές φορές, θα λάβετε διαφορετικά αποτελέσματα.
- Η μέθοδος PUT είναι αδύναμη, ενώ η μέθοδος POST δεν είναι αδύναμη.
Παράδειγμα 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.1Host: example.comContent-type: text/htmlContent-length: 20New File
Απαντήσεις
Εάν ο πόρος προορισμού έχει τρέχουσα αναπαράσταση και τροποποιηθεί με την κατάσταση της εσωκλειόμενης αναπαράστασης, τότε ο διακομιστής θα πρέπει να στείλει δύο απαντήσεις. Ο πρώτος κωδικός απόκρισης είναι 200 (OK) και ο δεύτερος κωδικός απόκρισης είναι 204 (Χωρίς περιεχόμενο)
Εάν ο πόρος προορισμού δεν έχει καμία αναπαράσταση, τότε ο διακομιστής θα πρέπει να ενημερώσει τον χρήστη στέλνοντας μια απόκριση κωδικού 201 (Δημιουργήθηκε).
HTTP/1.1 201 CreatedContent-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.1Host: abc.exampleContent-Type: application/x-www-form-urlencodedContent-Length: 40field1=value1&field2=value2
Διαφορά μεταξύ PUT και POST
Εδώ είναι η σημαντική διαφορά μεταξύ της μεθόδου PUT και POST:
ΒΑΖΩ | ΘΕΣΗ |
Αυτή η μέθοδος είναι αδύναμη. | Αυτή η μέθοδος δεν είναι αδύναμη. |
Η μέθοδος PUT είναι κλήση όταν πρέπει να τροποποιήσετε έναν μόνο πόρο, ο οποίος είναι ήδη μέρος της συλλογής πόρων. | Η μέθοδος POST είναι κλήση όταν πρέπει να προσθέσετε έναν θυγατρικό πόρο στη συλλογή πόρων. |
Το RFC-2616 απεικονίζει ότι η μέθοδος PUT στέλνει ένα αίτημα για μια κλειστή οντότητα που είναι αποθηκευμένη στο παρεχόμενο URI αιτήματος. | Αυτή η μέθοδος ζητά από τον διακομιστή να αποδεχτεί την οντότητα που περικλείεται στην αίτηση. |
Η σύνταξη της μεθόδου PUT είναι PUT / questions / {question-id} | Η σύνταξη της μεθόδου POST είναι POST / question |
Η απάντηση της μεθόδου PUT μπορεί να αποθηκευτεί προσωρινά. | Δεν μπορείτε να αποθηκεύσετε προσωρινά τις απαντήσεις της μεθόδου PUT. |
Το PUT / vi / juice / orders / 1234 δηλώνει ότι ενημερώνετε έναν πόρο που προσδιορίζεται από το "1234". | Το POST / vi / juice / orders δείχνει ότι δημιουργείτε έναν νέο πόρο και επιστρέφετε ένα αναγνωριστικό για να περιγράψετε τον πόρο. |
Εάν στείλετε το ίδιο αίτημα πολλές φορές, το αποτέλεσμα θα παραμείνει το ίδιο. | Εάν στείλετε το ίδιο αίτημα POST περισσότερες από μία φορές, θα λάβετε διαφορετικά αποτελέσματα. |
Το PUT λειτουργεί ως συγκεκριμένο. | Το POST λειτουργεί ως αφηρημένο. |
Χρησιμοποιούμε το ερώτημα ΕΝΗΜΕΡΩΣΗΣ στο PUT. | Χρησιμοποιούμε το ερώτημα δημιουργίας στο POST. |
Στη μέθοδο PUT, ο πελάτης αποφασίζει ποιος πόρος URI θα πρέπει να έχει. | Στη μέθοδο POST, ο διακομιστής αποφασίζει ποιος πόρος URI θα πρέπει να έχει. |
Δοκιμή ενός API με αιτήματα PUT
Ακολουθούν τα βήματα για τη δοκιμή του API με αιτήματα PUT:
Βήμα 1) Ενημέρωση πόρων με αίτημα PUT.
Βήμα 2) Χρησιμοποιήστε τη μέθοδο GET για πόρους. Εάν το αίτημα PUT επιτύχει, θα λάβετε νέα δεδομένα. Αυτή η μέθοδος θα αποτύχει εάν τα παρεχόμενα δεδομένα στο αίτημα δεν είναι έγκυρα. Επομένως, δεν θα ενημερώσει τίποτα.
Δοκιμή ενός API με αιτήματα POST
Ακολουθούν τα βήματα για τη δοκιμή του API με αιτήματα POST:
Βήμα 1) Δημιουργήστε έναν πόρο χρησιμοποιώντας το αίτημα POST και βεβαιωθείτε ότι επιστρέφει 200 κωδικό κατάστασης.
Βήμα 2) Κάντε ένα αίτημα GET για αυτόν τον πόρο και αποθηκεύστε τα δεδομένα στη σωστή μορφή.
Βήμα 3) Πρέπει να προσθέσετε δοκιμές που διασφαλίζουν ότι τα αιτήματα POST αποτυγχάνουν με λανθασμένα δεδομένα.
Πλεονεκτήματα της μεθόδου PUT
Ακολουθούν τα πλεονεκτήματα / οφέλη από τη χρήση της μεθόδου PUT:
- Σας βοηθά να αποθηκεύσετε την παρεχόμενη οντότητα κάτω από το παρεχόμενο URI
- Εάν η παρεχόμενη οντότητα υπάρχει ήδη, τότε μπορείτε να εκτελέσετε τη λειτουργία ενημέρωσης ή μπορείτε να δημιουργήσετε με αυτό το URI.
- Μπορείτε να δημιουργήσετε έναν πόρο όσες φορές θέλετε.
- Η δημιουργία ενός πόρου με τη μέθοδο PUT είναι πολύ εύκολη.
- Δεν χρειάζεται να ελέγξετε αν ο χρήστης έχει κάνει κλικ στο κουμπί υποβολής πολλές φορές ή όχι.
- Μπορεί να προσδιορίσει την οντότητα που περικλείεται με το αίτημα.
Πλεονεκτήματα της μεθόδου POST
Ακολουθούν πλεονεκτήματα / οφέλη από τη χρήση της μεθόδου POST:
- Αυτή η μέθοδος σάς βοηθά να προσδιορίσετε URI πόρου.
- Ο καθορισμός μιας νέας κεφαλίδας θέσης πόρου είναι πολύ εύκολος χρησιμοποιώντας την κεφαλίδα τοποθεσίας.
- Μπορείτε να στείλετε ένα αίτημα για αποδοχή της οντότητας ως νέο δευτερεύον στοιχείο του πόρου, το οποίο προσδιορίζεται από το URI.
- Μπορείτε να στείλετε δεδομένα που δημιουργούνται από τον χρήστη στον διακομιστή ιστού.
- Είναι πολύ χρήσιμο όταν δεν γνωρίζετε τη διεύθυνση URL για να διατηρήσετε οποιονδήποτε πόρο.
- Χρησιμοποιήστε το POST όταν χρειάζεστε τον διακομιστή, ο οποίος ελέγχει τη δημιουργία URL των πόρων σας.
- Το POST είναι μια ασφαλής μέθοδος καθώς τα αιτήματά του δεν παραμένουν στο ιστορικό του προγράμματος περιήγησης.
- Μπορείτε να μεταδώσετε εύκολα μια μεγάλη ποσότητα δεδομένων μέσω ταχυδρομείου.
- Μπορείτε να διατηρήσετε τα δεδομένα απόρρητα.
- Αυτή η μέθοδος μπορεί να χρησιμοποιηθεί για την αποστολή δυαδικών καθώς και δεδομένων ASCII.